command | description |
---|---|
screen -S yourname | # 新建一个叫yourname的session |
screen -ls | # 列出当前所有的session |
screen -r yourname | # 回到yourname这个session |
screen -d yourname | # 远程detach某个session |
screen -d -r yourname | # 结束当前session并回到yourname这个session |
echo $STY | 查看自己是不是在screen里边. 如果回显是空的,那么就是在真·终端里,否则会显示当前的screen ID |
# C-a d # detach
# screen -ls # list session
# screen -d # detach session
# screen -r 12865 # recall session
# screen -S 7311 -X quit # kill session
当然,如果你在另一台机器上没有分离一个Screen会话,就无从恢复会话了。
这时可以使用下面命令强制将这个会话从它所在的终端分离,转移到新的终端上来:
# screen -r 12865 # recall session
# screen -d 12865 # detach session
# screen -r 12865 # recall session
利用ctrl-a [ 进入copy mode,即可查看。
访问github又崩溃了,提示ssh授权失败。
参考这里重新设置ssh公钥,windows下GitHub的SSH key配置
生成SSH密钥 并 添加公共密钥到GitHub上的帐户
进入终端,运行如下命令,直接用用户名和邮箱替换包括括号的部分:
git config --global user.name "Git账号"
git config --global user.email "Git邮箱"
ssh-keygen -t rsa -C "your_email@example.com"
注:
/c/Users/xxxxxxx/.ssh/目录下,右键Git Bash here
eval $(ssh-agent -s)
ssh-add /c/Users/xxxxxxx/.ssh/id_rsa
先复制SSH公钥的完整内容(/c/Users/xxxxxxx/.ssh/id_rsa.pub) 进入GitHub的设置页面(登录GitHub,在右上角), settins - SSH and GPG keys - delete old key then new SSH key - 粘贴公钥
Git Bash下
ssh -T git@github.com
出现“Hi,xxxxxxx, You’ve successfully authenticated…”,说明SSH Key配置成功 如果提示的是“ access denied”, 请参考这里:these instructions for diagnosing the issue.
参考: 同一客户端下配置多个git账户
舵机,由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。
舵机一般而言都有最大旋转角度(比如180度)。使用舵机(servo)控制转向。
与普通直流电机的区别主要在,直流电机是一圈圈转动的,舵机只能在一定角度内转动,不能一圈圈转(数字舵机可以在舵机模式和电机模式中切换,没有这个问题)。
接线颜色 | 连接 |
---|---|
红 | 正 |
棕 | 负 |
黄 | 信号 |
通过发送信号,指定输出轴旋转角度。
舵机的控制原理就是pmw脉宽调制,通过给舵机调节占空比来控制他的转向。
以SG-5010为例:
1% ~ 12%占空比
占空比增加(从1% ~ 12%),向左旋转
占空比减少(从12% ~ 1%),向右旋转
舵机 | 说明 |
---|---|
TowerPro SG-5010 | 价格便宜,5.5kg扭力(4.8V供电) |
TowerPro MG995 | 价格便宜,金属齿轮,耐用度也不错,扭力小 |
DYNAMIXEL SR-403P | 价格低,全金属齿轮,扭力大 |
AX-12+ | 价格高,485接口 |
HG0680 | 塑料齿轮模拟舵机,跟随性好 |
S3010 | 扭力<=6.5kgf.cm> |
S-U400 | 扭力>=6.5kgf.cm> |
HG14-M | 数字舵机 |
参考:
U-Boot在RAM中运行code,所以,要进行以下2步:
所以,u-boot下设置环境变量:
setenv bootcmd 'ext4load mmc 1:1 0x48080000 Image;ext4load mmc 1:1 0x48000000 xxxxxx.dtb;booti 0x48080000 - 0x48000000'
将上述命令分行显示如下:
fatload mmc 1:1 0x48080000 Image;
fatload mmc 1:1 0x48000000 xxxxxx.dtb;
booti 0x48080000 - 0x48000000
对以上命令的解释:
fatload mmc <dev>[:partition] <loadAddress> <bootfilename>
ext4load mmc <dev>[:partition] <loadAddress> <bootfilename>
bootm <address of kernel> <address of ramdisk> <address of dtb>
如果kernel中已经配置了,可以忽略ramdisk、dtb,这时,相应位置用“ - ”占位.
编译Yocto工程,使用默认的rootfs设置进行编译,烧写Image和rootfs后,启动。
打算用mkfs.ext4命令格式化emmc,这时,才发现bin/和sbin/目录下都没有mkfs.ext4命令。
一般默认的local.conf里很多package是没有的。
如果有需求的话,一般是先通过
bitbake -s | grep 关键字
检索当前的配方列表里是否有那个package。
然后,再按这个配置添加到local.conf里,编辑local.conf,在后面加以下内容:
IMAGE_INSTALL_APPEND = " e2fsprogs"
这样,bitbake core-image-weston后,会编译这个package,并将生成的image 自动存放 到rootfs(根文件系统)里。
$ source poky/oe-init-build-env
$ bitbake e2fsprogs
mkfs.ext4 命令存在于这个目录下:
~/build/tmp/work/aarch64-poky-linux/e2fsprogs/1.45.4-r0/image$
将所有的目录copy到虚拟机下的NFS服务器目录(home/titron/export/rfs/)下,再次启动kernel,就能使用这些命令了。
BTW,命令mkfs.fat不在e2fsprogs包中,需要从这里下载,然后编译该包生成: https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz
有关Yocto编译的问题,请参考: Yocto FAQ
/bin,/sbin目录是在系统启动后挂载到根文件系统中的,所以,/sbin,/bin目录必须和根文件系统在同一分区:
/usr/bin,usr/sbin可以和根文件系统不在一个分区。
如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么首先就要考虑root 的$PATH里是否已经包含了这些环境变量。
可以查看PATH,如果是:
PATH=$PATH:$HOME/bin
则需要添加成如下:
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin