[TOC]
刷系统
- 我要刷的是debian,image位于百度云,刷系统到nand需要phoenixsuit软件,下载地址
- 刷系统的时候先关掉ct电源,电脑中选中需要刷的image文件,摁住FEL线,连接otg线,然后开始刷机
- 刷完后,连接网线,然后使用ssh连接到ct
开启网络连接
-
如果是有线,直接连接开机就行,默认DHCP自动获取ip,然后SSH连接就行,也内置的。
-
特殊情况下可以使用TTL线,接线如下:黑色——GND,红色——不接,绿色——RX,白色——TX 然后使用shell连接,先去电脑设备管理器里找到所用端口,比如COM7 连接的时候选择SERIAL协议,然后在SERIAL配置里选择Port7,配置如下:
然后连接
-
无线的话,使用ttl线连接好,ct已经内置wifi模块,ifconfig查看是否加载,类似wlan0,如果没有,执行$modprobe bcmdhd,不过ct这个版本的已经写到/etc/modules了,如果没有还需要写到这里。
-
为了访问方便,需要在路由器给ct设置为静态IP。然后还需要到/etc/network/interfaces修改eth0为静态方式:
iface eth0 inet static address 192.168.0.150 netmask 255.255.255.0 gateway 192.168.0.1
-
编辑/etc/network/interfaces,现有版本里已经写好了,修改好自己的SSID和password就行,不过这种只支持一个SSID。然后重启就行。
-
不过我们一般要使用多个热点,在不同地方可以自动连上,参考这个文章
-
总结一下使用无线的流程。 首先需要有个AP(热点)。 然后设备需要有无线网卡设备,usb无线网卡或者内置的wifi模块,在ct里内置了wifi模块,驱动就不用管了。否则还得手动添加驱动,
apt-get install wpasupplicant
如果用了usb无线网卡,首先lsusb查看设备是否被usb设备识别。然后使用iwconfig查看是否被内核加载,如果没有看到则需要加载正确驱动了。 检测完后,启动网卡,ifconfig wlan0 up 然后搜索周围的AP,iwlist wlan0 scan 涉及到两个命令,ifconfig wlan0 up和ifconfig wlan0 down开启或关闭网卡wlan0 然后看看网卡的配置文件,在RedHat里是放在/etc/sysconfig/network-scripts目录下的一堆文件里的,但是在debian里是放在/etc/network/interfaces里,无论多少配置都放在同一个文件里。
auto lo eth0 #自动配置加载lo和eth0 iface lo inet loopback #为lo接口设置为一个loopback本地回环地址 iface eth0 inet dhcp #为eth0设置为通过dhcp自动获取ip,也可以是static静态地址自己配置参数 #allow-hotplug wlan0 #表示wlan设备可以热插拨,一般USB无线网卡会有这个选项 auto wlan0 iface wlan0 inet dhcp pre-up ip link set wlan0 up #这儿有pre-up、up、post-up、pre-down、down、post-down等一组命令,分别定义加载网卡各个时刻执行的操作,这个代表启动前执行ip link set wlan0 up命令 pre-up iwconfig wlan0 essid luca #同理,搜索essid为luca的网络 wpa-ssid luca wpa-psk postcard
修改后然后执行/etc/init.d/networking restart生效。 其实如果要使用多个网络,还可以使用其他方法,例子如下:
auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B
然后创建/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant #ap_scan=2 network={ id_str="Office" ssid="1" key_mgmt=WPA-PSK psk="12345678" } network={ id_str="Home" ssid="2" key_mgmt=WPA-PSK psk="12345678" }
后面的network部分也可以使用这个命令来生成追加
wpa_passphrase [SSID][密码] >> /etc/wpa_supplicant/wpa_supplicant.conf
修改后然后执行/etc/init.d/networking restart生效。
*参考资料:
设置为AP
还可以把CT当做AP热点,配合openVPN当做翻W热点,设置的时候上面的配置基本全部推翻重来了。 我们使用桥接的方式,把有线网口的信号转换成无线。
安装HOSTAPD
-
安装了hostapd,一般都已经安装了,还需要考虑和无线网卡芯片是否兼容。apt-get install bridge-utils安装后发现总是在获取IP的时候报错: wlan0: STA 4c:21:d0:1b:02:43 IEEE 802.1X: unauthorizing port Could not set station 4c:21:d0:1b:02:43 flags for kernel driver (errno=11). 耽误了好久,最后发现是hostapd版本不对,就apt-get remove hostapd了,然后重新安装hostapd2.1
wget https://github.com/igorpecovnik/Cubietruck-Debian/raw/master/bin/hostapd21.tgz tar xvzf hostapd21.tgz cp hostapd hostapd_cli /usr/sbin
运行hostapd -v显示就是2.1了,但是我当时还报错了,提示找不到库文件libnl.so.1,最后这个1是版本
apt-get install libnl1
然后重启hostapd
-
修改/etc/modules,bcmdhd修改为bcmdhd op_mode=2
-
修改/etc/init.d/hostapd,在里面修改DAEMON_CONF=/etc/hostapd.conf
-
修改/etc/hostapd.conf配置文件,主要是修改ssid和wpa_passphrase,参数大致如下:
ssid=lucaServ interface=wlan0 #把wlan0当做接入点 hw_mode=g #802.11G模式 channel=1 #选用1信道 bridge=br0 logger_syslog=0 logger_syslog_level=0 wmm_enabled=0 wpa=2 #preamble=1 wpa_passphrase=password #密码 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP auth_algs=1 macaddr_acl=0
*安装hostapd的时候发生了奇怪的事情,service启动总是失败,但是hostapd命令可以启动,查了很久最后发现是以前的配置没有清空,default/hostapd的配置还连着以前错误的conf文件,改了后正常了 *之前hostapd总是有问题,后来看到这个博客里说的版本问题,解决了
桥接
-
apt-get install bridge-utils
安装桥接
-
修改/etc/network/interfaces,主要是增加桥接配置,去掉wlan0配置
auto lo iface lo inet loopback #wired adapter iface eth0 inet manual #bridge auto br0 iface br0 inet static bridge_ports eth0 wlan0 address 192.168.0.150 netmask 255.255.255.0 gateway 192.168.0.1
-
重启service networking restart
更换国内源
刷好的debian系统为ct定制的:Debian GNU/Linux CTDebian 2.5 wheezy
-
使用163源比较快,但是我在测试的时候发现报错了,貌似有些无法访问。否则可以直接wget配置文件替换/etc/apt/sources.list
-
使用debian的国内源,替换成如下:
## china deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free deb http://ftp.cn.debian.org/debian/ wheezy-proposed-updates main contrib non-free deb-src http://ftp.cn.debian.org/debian/ wheezy-proposed-updates main contrib non-free deb http://ftp.cn.debian.org/debian/ wheezy-backports main contrib non-free deb-src http://ftp.cn.debian.org/debian/ wheezy-backports main contrib non-free # debian security updates deb http://security.debian.org/ wheezy/updates main contrib non-free deb-src http://security.debian.org/ wheezy/updates main contrib non-free # multimedia deb http://deb-multimedia.org wheezy main non-free
-
使用apt-get update更新源,可能出现W: GPG error: http://deb-multimedia.org wheezy Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907,使用如下两个命令解决:
gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907 gpg -a --export 07DC563D1F41B907 |apt-key add -
需要把其中的字串替换成上面的
-
update更新时出现了Hash Sum mismatch错误
查看最后一条正确log,如:
Get:2 http://ftp.cn.debian.org wheezy/main armhf Packages [5,687 kB]
则去sources.list里面屏蔽掉wheezy/main的deb-src或者deb行
-
update更新出现E: Method rred has died unexpectedly!
使用如下命令apt-get update -o Acquire::Pdiffs=false
-
出现 E: Some index files failed to download. They have been ignored, or old ones used instead.
找到所有W:的列,比如W: Failed to fetch http://ppa.launchpad.net/gophers/go/ubuntu/dists/wheezy/main/source/Sources 404 Not Found
则执行add-apt-repository –remove ppa:gophers/go 把所有的W:列都执行了
-
关于sourcelist的一些解读:来源
source.list 文件配置例子:
root@zhu:~# cat 163.list deb http://mirrors.163.com/debian/ wheezy main non-free contrib deb http://mirrors.163.com/debian/ wheezy-proposed-updates main non-free contrib deb-src http://mirrors.163.com/debian/ wheezy main non-free contrib deb-src http://mirrors.163.com/debian/ wheezy-proposed-updates main non-free contrib
-
第一部分,固定格式deb或deb-src
deb :二进制包
deb-src :源码包
-
第二部分,为镜像的url,也可以说是源地址的url
可以是
"http://"
,"ftp://"
,"file://"
, 三种格式。,在浏览器打开会发现下面内容:../ dists/ 19-Jul-2014 18:08 - doc/ 19-Sep-2014 15:52 - indices/ 16-Aug-2014 03:17 - pool/ 20-Dec-2000 04:10 - project/ 18-Nov-2008 07:05 - tools/ 11-Oct-2012 00:29 - README 19-Jul-2014 18:04 1061 README.CD-manufacture 26-Jun-2010 17:52 1290 README.html 19-Jul-2014 18:05 2594 README.mirrors.html 16-Sep-2014 09:52 179K README.mirrors.txt 16-Sep-2014 09:52 94K
ls -lR.gz
对url下面常见的目录介绍:
dists/:该目录包含的是“发行版(distributions),此处是获得debian发布版本的途径。
pool/:目录为软件包的物理地址,pool目录下面按属性分为三类:main,contrib,non-free,软件包按照源码包的名称的首字母归档,软件包主要有二进制包和源码包
tools:用于创建启动盘,磁盘分区的小工具
doc :debian文档
indices :维护人员文件和重载文件
project:开发人员的资源
-
第三部分,dibian系统的版本号,
oldstable :老的稳定发行版,对应dists/目录下较老的版本
stable :现在的稳定发行版,对于debian来说每个发行版都有一个代号别称:
debian 6 :squeeze
debian 7 :wheezy
testing :目前还处于测试阶段的发行版
unstable(sid) :不稳定版本
-
第四部分,每个对应版本的目录下面都会有三个目录
main :基本且主要并符合只有软件规范的软件
contrib:这里头软件虽然可以在 Debian 里头运作,即使本身属于自由软件但多半却是相依于非自由 ( non-free ) 软件。
non-free :不属于自由软件范畴的软件
1.找到包含dists和pool的url 如:http://mirrors.163.com/debian/
2.打开dists 查看里面包含的版本号:如wheezy ,squeeze,stable等
3.打开pool目录,看里面包含哪些组件目录,一般是,main,contrib,non-free等
书写格式:
deb http://mirrors.163.com/debian wheezy man contrib non-free
-
-
一些常用的APT命令
apt-cache search ——package 搜索包
sudo apt-get install ——package 安装包
sudo apt-get remove —–package 删除包
sudo apt-get remove –purge ——package 删除包,包括删除配置文件等
sudo apt-get update ——更新源
sudo apt-get upgrade ——更新已安装的包
sudo apt-get dist-upgrade ———升级系统
sudo apt-get dselect-upgrade ——使用 dselect 升级
sudo apt-get autoclean ——定期运行这个命令来清除那些已卸载的软件包的.deb文档
dpkg -l | grep ‘^ii’ #查看本机软件列表 删除不需要的软件
apt-get autoremove #清理不需要的依赖软件包
apt-get clean #清理缓存
安装git&vim
- 安装git,按理来说已经装好了,直接点击我的VIM基本配置(长期更新),使用git同步更新
存储开机挂载
-
在挂载前如果是新硬盘还需要分区和格式化。
-
针对USB和SATA自动挂载,使用脚本开机把dev下的设备挂载到/mnt/label对应文件夹
vim /etc/udev/rules.d/10-usbstorage.rules
加入
KERNEL!="sd*", GOTO="media_by_label_auto_mount_end" SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end" IMPORT{program}="/sbin/blkid -o udev -p %N" ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end" ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k" ACTION=="add", ENV{mount_options}="relatime,sync" ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umask=000" ACTION=="add", ENV{ID_FS_TYPE}=="ntfs-3g", ENV{mount_options}="iocharset=utf8,umask=000" ACTION=="add", RUN+="/bin/mkdir -p /mnt/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /mnt/%E{dir_name}" ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /mnt/%E{dir_name}", RUN+="/bin/rmdir /mnt/%E{dir_name}" LABEL="media_by_label_auto_mount_end"
-
插入了TF卡设置开机自动挂载到/data,首先要mkdir /data 为了保证LINUX的权限机制完整呈现,我把TF卡格式化成EXT4了。 在/etc/fstab下增加
/dev/mmcblk0p1 /data ext4 defaults 0 0
*这个现在会有chown权限不够,还没找到答案(vfat没有不支持linux下的文件系统的权限系统)
生成SSH密钥公钥供使用
支持NTFS格式磁盘
- apt-get install ntfs-3g
安装SAMBA服务
安装LNMP
-
检查时间,更新时区:
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-
apt-get update apt-get install nginx apt-get install php5-fpm apt-get install php5-cli apt-get install php5-curl apt-get install php5-gd apt-get install php5-mcrypt apt-get install php5-mysql apt-get install php5-cgi apt-get install mysql-server
-
MYSQL优化,首先修改datadir,以及相关参数
[mysqld] datadir = /data/mysql key_buffer = 64k max_allowed_packet = 1M thread_stack = 64K 如出现1436错误,将 thread_stack 项参数调大 thread_cache_size = 4 query_cache_limit = 1M
然后把原来/var/lib/mysql的内容复制到/data/mysql中
cp -ir /var/lib/mysql/ /data/
然后重启mysql
-
php修改/etc/php5/fpm/php-fpm.conf
process.max=10
-
nginx修改 首先vim /etc/nginx/nginx.conf
worker_processes 1; worker_connections 128; gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
然后在http中添加
client_max_body_size 50m;
然后备份/etc/nginx/sites-available/default ,替换成
server { listen 80; root /data/wwwroot/labs.cn; index index.html index.htm index.php default.html default.htm default.php; # Make site accessible from http://localhost/ server_name labs.cn; if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } location ~ .*.php(/.*)*$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
这儿其实有个对应关系,如果是default,则在site-enabled/中存在一个同名软连接连接到site-available/下。 如果要建立一个新虚拟主机,只要在available目录下拷贝一个default,修改成aa.com,里面修改完。 建立软连接ln -s /etc/nginx/sites-available/a.cn /etc/nginx/sites-enabled/a.cn。 然后重启就行了。
然后重启各个服务
安装百度云同步工具
使用bypy在百度云里面建立一个应用,然后把文件放到这个目录进行同步。
-
安装pip,运行apt-get install pip貌似会有问题,使用另外一个方法。
切换到~
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py
-
安装py requests库
pip install requests
-
在~安装bypy,
git clone https://github.com/houtianze/bypy.git
-
具体命令参考github的项目。
需要注意的是远程文件夹,写的是/apps/bypy/下的路径,比如比对:
python bypy.py compare music /root/bypy
比较百度云music文件夹和本地bypy下的不同
LINUX支持EXFAT
挂载U盘的时候出现exfat格式不被识别,需要安装exfat格式支持后mount
apt-get update && apt-get install exfat-fuse && apt-get install exfat-utils
安装软件
这个直接看看这个吧
软件包的管理是使用Ubuntu最重要的工作之一,这篇文章将介绍基本的软件包管理命令。
- 使用dpkg或apt-get安装软件包
- 使用dpkg或apt-get移除软件包
- 使用dpkg-query, apt-cache, apt-file查找软件包
- 使用apt-get进行更新操作
安装软件包
#dpkg
如果一些软件只提供.deb软件包,下载到本地后那么可以用dpkg来安装,但它不解决包的依赖关系; 例如前往www.viber.com下载viber的deb安装包,并通过dpkg来安装:
$ sudo dpkg -i viber.deb ##通过 --get-selections 检测软件是否安装成功 $ dpkg --get-selections | grep viber viber install
#apt-get
大多数情况,使用apt-get来安装软件,可以轻易的解决软件的安装,因为它可以解决其中各种复杂的依赖关系:
$ sudo apt-get install java
apt-get从软件源中下载指定的软件包和相关的依赖包后,安装过程主要也是由dpkg来完成。
移除软件包
#dpkg
移除软件包,保留配置文件:
$ sudo dpkg -r viber
完全移除软件包:
$ sudo dpkg -P viber
#apt-get
$ sudo apt-get remove apache2 ##移除apache2软件包和它的依赖包,但保留配置文件 $ sudo apt-get purge apache2 ##完全移除apache2软件包 $ sudo apt-get remove ##卸载所有自动安装且不再使用的软件包, 谨慎使用
查询软件包
#dpkg-query
查询指定的包是否被安装,使用-l或–list选项:
$ dpkg-query -l vim ||/ Name Version Description +++-==============-==============-============================================ ii vim 2:7.3.429-2ubu Vi IMproved - enhanced vi editor
假如你想知道/etc/vim/vimrc这个文件是从哪一个软件包安装而来的,使用-S或–search选项:
$ dpkg-query -S /etc/vim/vimrc vim-common: /etc/vim/vimrc $ dpkg-query -S /etc/init.d/dns-clean pppconfig: /etc/init.d/dns-clean
假如要查看软件包安装时安装到系统的文件列表,使用-L或-listfiles选项:
$ dpkg-query -L vim /. /usr /usr/bin /usr/bin/vim.basic /usr/share /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/vim /usr/share/bug /usr/share/bug/vim /usr/share/bug/vim/presubj /usr/share/bug/vim/script /usr/share/doc /usr/share/doc/vim
#apt-cache
使用
apt-cache search
搜索软件包,可以按关键字查找软件包,当软件源中有,就会列出匹配的包的名称和简要描述,例如:$ apt-cache search chkco chkconfig - system tool to enable or disable system services $ apt-cache search sublime libsublime-dev - development files for the sublime user interface library libsublime5 - User interface library
如果要显示指定软件包的信息,包括版本号,安装状态和包依赖关系等,可以使用
apt-cache show
,例如:$ apt-cache show sysv-rc-conf Package: sysv-rc-conf Priority: optional Section: universe/admin Installed-Size: 104 Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com> Original-Maintainer: Francesco Pedrini <francesco.pedrini@gmail.com> Architecture: all Version: 0.99-6 ...
当需要了解某个软件包依赖于其他哪些包时,可以使用
apt-cache depends
来查询包依赖关系:$ apt-cache depends subversion subversion Depends: libsvn1 Depends: libapr1 Depends: libc6 Depends: libsasl2-2 Suggests: subversion-tools Suggests: db4.8-util Suggests: patch
#apt-file
上面说到
dpkg-query -L
可以查询软件包安装时安装到系统的文件列表; 这里介绍apt-file,它可以查询已安装的和未安装的软件包包含哪些文件。需要先进行apt-file的安装和初始化,默认没有被安装:$ sudo apt-get install apt-file $ sudo apt-file update
apt-file安装和初始化后,例如查询sysv-rc-conf软件包包含的文件:
$ apt-file list sysv-rc-conf sysv-rc-conf: /usr/sbin/sysv-rc-conf sysv-rc-conf: /usr/share/doc/sysv-rc-conf/README sysv-rc-conf: /usr/share/doc/sysv-rc-conf/TODO sysv-rc-conf: /usr/share/doc/sysv-rc-conf/changelog.Debian.gz sysv-rc-conf: /usr/share/doc/sysv-rc-conf/copyright sysv-rc-conf: /usr/share/man/man8/sysv-rc-conf.8.gz
查找某个文件属于哪个软件包,上面说到可以用
dpkg-query --search
,也可以使用apt-file search 来实现:$ apt-file search /etc/environment environment-modules: /etc/environment-modules/modulespath $ apt-file search /etc/vim/vimrc vim-common: /etc/vim/vimrc vim-tiny: /etc/vim/vimrc.tiny
更新操作
#apt-get
$ sudo apt-get update #更新软件源 $ sudo apt-get upgrade #只升级现有的软件包,如果可升级的软件包依赖于新的软件包,则该软件包不会被升级 $ sudo apt-get dis-upgrade #会升级所有可升级的软件包,如果可升级的软件包依赖于新的软件包,新的软件包也会被安装
以上是最基本的软件包管理命令,还有很多其它的选项和命令,通过
man page
即能进一步研究和探讨。