从(一)中的简单配置,beaglebone black已经可以开始工作了。以下的设置假设操作系统是debian其安装在emmc中,有sd卡作为普通存储介质,emmc只作为系统盘。有可用的网络。
简单的术语:
在系统中emmc将被识别为/dev/mmcblk1,sd卡将被识别为/dev/mmcblk0,如果有移动硬盘接入,可能会识别为/dev/sdaX。
sd卡的格式化和挂载是一个很值得深入研究的问题,将在(3)中详细介绍。
假设你已经使用root用户通过ssh登陆了系统。
进行系统设置的第一步是创建用户和修改密码,系统默认的用户是root:root和debian:temppwd,这些都是公开的,所以为了安全起见,首先需要修改root和debian的用户密
码,同时为了更加安全,我希望创建一个全新的用户,拥有和debian一样的权限。
1.输入passwd修改root用户密码,在使用passwd debian修改debian用户密码。
2.创建新用户,比如beaglebone。
>>useradd beaglebone
该命令将创建beaglebone,处于同名的beaglebone group中。
用groups debian查看debian的用户组权限。
beaglebone@beaglebone:~$ groups debian
debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users netdev i2c admin spi systemd-journal weston-launch xenomai
将beaglebone添加进还没有加入的group中,比如
>>useradd -G adm,kmem,dialout,cdrom,floppy,audio,dip,video,plugdev,users, netdev, i2c,admin,spi ,systemd-journal,weston-launch,xenomai beaglebone
3.设置beaglebone用于sudo权限
首先用update-alternatives --config editor来修改系统默认的编辑器,我习惯用vim。
1)切换到root,运行:
su - (注意:su的后面有“-”符号,su - 和 su是不一样的)
2) sudo visudo
在root ALL=(ALL) ALL行的下面添加如下:
your-user-name ALL=(ALL) ALL
如果想在sudo的时候不需输入密码,则在root ALL=(ALL) ALL行的下面添加如下:
your-user-name ALL=(ALL) NOPASSWD: ALL
用户配置完毕。
重启beaglebone,用beaglebone远程登录beaglebone black。
beaglebone black没有ntc模块,所以系统时间无法保存,系统时间不对的话,会引起各种各样的问题,比如更新时间不对,编译出错。
查看时间的命令是
>>date
可以用
>>date -s mm/dd/yyyy来手工设定时间
用ntp来同步网络时间。
>>sudo apt-get update
>>sudo apt-get install ntp ntpdate
安装后ntp service也许有各种问题无法自动更新时间,所以可以用
>>ntpdate -u -s -b pool.ntp.org来手动更新时间
首先检查是否有xorg桌面比如lxde,因为我默认是要使用beaglebone作为服务器使用,所以不希望GUI占用太多存储空间和内存,所以要先进行系统精简。
参考下面的链接:
https://hifiduino.wordpress.com/2014/03/17/beaglebone-black-base-operating-system/
简单的总结就是:
>>dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
#查看安装程序占用空间
开始清理系统:
Remove X11 package (GUI)
>>apt-get remove -y x11-common
>>apt-get autoremove
Remove Desktop environment GNOME and GTK
>>apt-get remove libgtk-3-common --purge
>>apt-get autoremove
>>apt-get remove libgtk2.0-common --purge
>>apt-get autoremove
>>rm -r /usr/share/icons
>>apt-get remove gnome-* --purge
>>apt-get autoremove
>>apt-get remove desktop-base --purge
>>apt-get autoremove
>>df -h
查看系统空间占用
重启
内网转发
在router上设置内网转发
首先将router的访问端口由80改为8080,因为80端口是最不太可能被封锁的网络端口,所以当访问beaglebone black时,我希望用80端口访问。
假设beagleone black的局域网ip是192.168.1.7,在虚拟服务器,创建转发规则如下:
服务端口号:80
内部端口号:22
ip地址:192.168.1.7
协议:all
具体设置可以google路由器型号+远程web管理,转发规则等。
这样假设router的外网ip是212.168.1.1,在外部网络用ssh软件登陆212.168.1.1,端口80就可以访问beaglebone black了。ssh软件推荐mobaXterm,功能强大,且登陆后自动打开stfp功能,可以直接上传和下载文件。
中文化处理
自行google debian 中文化
在产生utf8_zh-CN的locale后,还需要在terminal进行设置。
>>vim ~/.profile
在最后加入
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
重启后,console就可以正常的显示和处理中文了,如果还有乱码,则需要将ssh软件的交互编码修改为utf8。
关于sd卡的挂载,网上有一堆方法,比如用udev规则或是udisks等等,设置相当繁琐,且经常不起作用,我的方案就是写个脚本用mount命令挂载即可。
手工mount最头疼的就是访问权限的问题,不同的format需要有不同的挂载参数。假设我需要挂载sd卡和一个外置硬盘。其访问node分别是/dev/mmcblk0p1和/dev/sda1,sd卡是ext4格式,外置硬盘是ntfs格式。
在/media下创建挂载点:
>>sudo mkdir /media/sd
>>sudo mkdir /media/usbhdd
再用chown来改变文件夹的用户属性
>>sudo chown beaglebone:beaglebone /media/sd
>>sudo chown beaglebone:beaglebone /media/usbhdd
用chmod改变访问权限为755
>>chmod -R 755 /media/sd
>>chmod -R 755 /media/usbhdd
准备工作都做好之后就可以mount了
sudo mount /dev/mmcblk0p1 /media/sd
sudo mount -t ntfs -o uid=beaglebone,gid=beaglebone /dev/sda1 /media/usbhdd
其中uid和gid是vfat和ntfs分区的权限管理参数,设置为当前用户后,其实对所有用户都是可读写的,所以如果用beaglebone black当多用户服务器的话,一定要小心。
另一个奇怪的现象是mount后的sd文件夹所属用户被改为了root用户组,当前用户无法读写。
这里需要重新用chown将sd改为beaglebone所有,这个动作将分区上的权限设置重新覆盖。
>>sudo chown beaglebone:beaglebone /media/sd
>>sudo umount /media/sd
再次mount
>>sudo mount /dev/mmcblk0p1 /media/sd
再用ls -l /media/sd查看,发现用户组已经是beaglebone了,以后就可以正常的mount,不用担心无权限访问了。
在~下创建脚本bbb-init
#!/bin/bash
mount /dev/mmcblk0p1 /media/sd
mount -t ntfs -o uid=beaglebone,gid=beaglebone /dev/sda1 /media/usbhdd
每次开机后用sudo执行以下就可以了。
关机脚本pd-bbb
#!/bin/bash
umount /media/sd
umount /media/usbhdd
reboot
关机时用这个指令
网络爬虫和编程
安装python3和相关的module库。
可以用sudo apt-cache search python3*来选择
安装sqlite3
安装phantomjs(需要编译安装)和selenium。
如果希望用firefox抓取,也可以安装xvfb和iceweasel。
网络浏览用w3m和links2,其他不推荐,因为是用ssh隧道,不支持frame buffer,所以是无法浏览图片的。
安装samba
安装vsftpd,unzip,tmux,ntfs-3g,mc,ipython3
tmux是很重要的工具,它最重要的一点就是可以运行命令与当前ssh进程隔离,这样如果ssh进程因为网络问题断开后,运行的程序不会因此而终止。请自行google tmux的使用。
Showing posts with label beaglebone black. Show all posts
Showing posts with label beaglebone black. Show all posts
Thursday, February 26, 2015
Saturday, August 2, 2014
beaglebone black简单入门(一)
玩了一阵arduino,感觉偏硬件很多,做一些复杂的软硬结合的工作不够方便,加之板子都扔在了国内,所以最近考虑换一个平台玩玩。在raspbery和beaglebone black(BBB)选择了BBB,因为觉得BBB配置会更高一些,接口也更丰富一点,当然BBB的教程资源和生态环境是不如raspberry的,但是仗着自己会一点点linux,和更喜欢用python开发,就硬着头皮入手了BBB。
下面简单介绍一点我的BBB的配置心得。
首先有一块BBB板子和usb cable足矣,什么屏幕,无线网卡都不需要,就可以开始尝试了,当然以后你可以完善这些外围配置,只是我觉得有网卡应该就ok了。
http://elinux.org/Beagleboard:BeagleBoneBlack
http://beagleboard.org/black
从这两个页面出发,把所有的链接文章都读一遍会帮助很大。
初始配置如下:
software:putty,http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
以windows 7为例
硬件:BBB,usb cable,带有网络连接的电脑。
在http://beagleboard.org/getting-started#step2下载BBB的driver安装。
如果插上BBB后出现相应的U盘,说明驱动工作正常。
打开BBB后,按https://learn.adafruit.com/downloads/pdf/ssh-to-beaglebone-black-over-usb.pdf的说明就可以使用ssh控制BBB了。
用户root,密码需要的话就是root。
根据http://lanceme.blogspot.com/2013/06/windows-7-internet-sharing-for.html的说明配置来配置BBB共享windows联网。
需要说明的是windows 7的ICS需要使用192.168.0.1来配置网关,如果你上网路由器已经使用了这个网址,就会弹出错误对话框,需要将路由器的地址设为别的地址,如果碰上这种情况请自行google。
联网之后就可以更新系统和安装软件了,前提是对linux有一定了解。
安装系统篇:
如果对默认的系统不满意,可以自己安装系统,参照http://elinux.org/Beagleboard:Debian_On_BeagleBone_Black.
如果有sd卡,可以使用sd卡来扩展系统空间,参照
http://elinux.org/Beagleboard:MicroSD_As_Extra_Storage
我的理解就是需要将系统分为两个区,第一个区是fat32格式,第二个区是linux分区就可以了,我都是手动在BBB上讲分区搞定的。需要用到fdisk和mkfs。
update:只是一个分区也可以挂载了。
网络设置
购买了TP-LINK WNT725N wifi module,但用得是8188的芯片,默认debian系统没有驱动,所以需要自己编译安装。
按照http://coremega.tumblr.com/post/78194792401/install-tp-link-wireless-n-adapter-tl-wn725n-on的步奏就可以。但是在第27步时需要在auto wlan0后面加入一行allow-hotplug wlan0,不然开机后还需要用ifup wlan0来手工启动wifi module。
再参考http://svay.com/blog/setting-up-a-wifi-connection-on-the-raspberrypi/进行配置。
在参照上面的设置后就可以无线上网了,但是驱动还是不太稳定,再进行大量下载时,系统有时就无端崩溃,因为我经常是远程操控,所以无法回来重启系统,最后还是选择用ethernet来连接网络。
使用ethernet不需要额外设置,直接连接就可以,经过多天的使用,网络连接非常稳定,不会造成系统崩溃。
经过上面的系统设置,beaglebone就可以正常的上网更新和安装软件了,后续阅读是beaglebone black简单入门(二)--- 系统配置, (三)---如何优化sd卡性能。
下面简单介绍一点我的BBB的配置心得。
首先有一块BBB板子和usb cable足矣,什么屏幕,无线网卡都不需要,就可以开始尝试了,当然以后你可以完善这些外围配置,只是我觉得有网卡应该就ok了。
http://elinux.org/Beagleboard:BeagleBoneBlack
http://beagleboard.org/black
从这两个页面出发,把所有的链接文章都读一遍会帮助很大。
初始配置如下:
software:putty,http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
以windows 7为例
硬件:BBB,usb cable,带有网络连接的电脑。
在http://beagleboard.org/getting-started#step2下载BBB的driver安装。
如果插上BBB后出现相应的U盘,说明驱动工作正常。
打开BBB后,按https://learn.adafruit.com/downloads/pdf/ssh-to-beaglebone-black-over-usb.pdf的说明就可以使用ssh控制BBB了。
用户root,密码需要的话就是root。
根据http://lanceme.blogspot.com/2013/06/windows-7-internet-sharing-for.html的说明配置来配置BBB共享windows联网。
需要说明的是windows 7的ICS需要使用192.168.0.1来配置网关,如果你上网路由器已经使用了这个网址,就会弹出错误对话框,需要将路由器的地址设为别的地址,如果碰上这种情况请自行google。
联网之后就可以更新系统和安装软件了,前提是对linux有一定了解。
安装系统篇:
如果对默认的系统不满意,可以自己安装系统,参照http://elinux.org/Beagleboard:Debian_On_BeagleBone_Black.
如果有sd卡,可以使用sd卡来扩展系统空间,参照
http://elinux.org/Beagleboard:MicroSD_As_Extra_Storage
我的理解就是需要将系统分为两个区,第一个区是fat32格式,第二个区是linux分区就可以了,我都是手动在BBB上讲分区搞定的。需要用到fdisk和mkfs。
update:只是一个分区也可以挂载了。
网络设置
购买了TP-LINK WNT725N wifi module,但用得是8188的芯片,默认debian系统没有驱动,所以需要自己编译安装。
按照http://coremega.tumblr.com/post/78194792401/install-tp-link-wireless-n-adapter-tl-wn725n-on的步奏就可以。但是在第27步时需要在auto wlan0后面加入一行allow-hotplug wlan0,不然开机后还需要用ifup wlan0来手工启动wifi module。
再参考http://svay.com/blog/setting-up-a-wifi-connection-on-the-raspberrypi/进行配置。
在参照上面的设置后就可以无线上网了,但是驱动还是不太稳定,再进行大量下载时,系统有时就无端崩溃,因为我经常是远程操控,所以无法回来重启系统,最后还是选择用ethernet来连接网络。
使用ethernet不需要额外设置,直接连接就可以,经过多天的使用,网络连接非常稳定,不会造成系统崩溃。
经过上面的系统设置,beaglebone就可以正常的上网更新和安装软件了,后续阅读是beaglebone black简单入门(二)--- 系统配置, (三)---如何优化sd卡性能。
Subscribe to:
Comments (Atom)