嵌入式开发板配置无线上网总结

手头有一块tiny210,但是没有网线,不能有线上网,只能为其设置无线网卡上网了。 配置上网的环境有这些 开发板用的debain根文件系统和kernel linux 3.0.8 wifi网卡,芯片型号是RTL8188CUS 串口(主要交互工具了) 首先是要去下载无线网卡的驱动和相关工具:点这里,找到RTL8188CUS,这一项的Unix(Linux),下载文件,看介绍支持Linux Kernel 2.6.18~2.6.38 和 Kernel 3.0.8 得到RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip这个文件,使用unzip解压它。 进去后发现东西很齐全。主要使用的文件夹有三个driver wireless_tools和wpa_supplicant_hostapd ##driver 进去后又是一个压缩包,如果使用的是友善提供的内核源码,里面已经包含了这款芯片的驱动了,无需再折腾,否则的话,就需要这个文件夹里面的文件了。此处先占个坑。 ##编译wireless_tools 编译wireless 比较简单,修改makefile的相关变量就可以了。 :::sh #由于这些工具需要安装到debain文件系统中,所以需要配置PREFIX,让Makefile知道编译好的文件放在哪里 ifndef PREFIX PREFIX = /home/gavin/workspace/min210/debain_rootfs endif ## Compiler to use (modify this for cross compile). #如果配置了PATH,使用友善提供的交叉工具链,才可以这样写。 CC = arm-none-linux-gnueabi-gcc ## Other tools you need to modify for cross compile (static lib only). AR = arm-none-linux-gnueabi-ar RANLIB = arm-none-linux-gnueabi-ranlib 简单的make && make install就可以了,执行完后发现文件系统多了下面一些文件 ...

June 27, 2013

android系统预安装可卸载应用程序

##基本思路 要编译预置程序的android系统,网上的方法是把程序放到/system/app目录中,但是这样做的话,程序不可卸载,而且如果不同程序的动态链接库名字相同的话,这两个应用程序就不能同时安装。 这里使用的方法是把程序放在/data/app目录,这样程序既可卸载,也可升级,更可共存,重新开机程序不会还原,恢复出厂设置后自动安装程序,一举n得。 流程是这样的:开机运行脚本检测/data/app目录是否有preinstall.txt这个文件,没有的话表示预置的程序没有安装,这时就从指定目录/system/media/app里把预置的apk复制到/data/app目录。 ##实现 首先是实现那个脚本。我把它起名为init.gavin.preinstall.sh :::sh #init.gavin.preinstall.sh #system/core/rootdir/etc/ #!/system/bin/sh cd /system/media/app #android shell script: check if preinstall.txt is exist if [ -s /data/app/preinstall.txt ]; then echo "don't need to copy preinstall files" else # scan all apk files under system/media/app apklist="$(ls)" for apkfile in ${apklist}; do #copy all apk file to data/app dd if=${apkfile} of=/data/app/${apkfile} # change the permission chmod 666 /data/app/${apkfile} done fi 问题来了,这个文件放在系统哪里?放到/etc/目录。 ...

June 19, 2013

shell使用笔记

变量赋值 :::java #输入的第一个参数赋值给INTENT INTENT = $1 无输入和输出的函数 :::java function xxx() { } #调用的话 xxx 条件判断 :::java if [ "$TARGET_PRODUCT" = "rk30sdk" ]; then if [ -z "$INTENT" ]; then help else ....... fi else echo "please lunch to chose a rockchip product" fi sed使用 :::java #这里使用了嵌套,先找到该行,再把true替换成false sed -i '/BUILD_WITH_SUPERUSER/{s/true/false/g}' $ANDROID_BUILD_TOP/device/rockchip/$TARGET_PRODUCT/BoardConfig.mk case的使用 :::java case $1 in "user" ) prepare_user ;; "develop" ) prepare_develop ;; * ) echo "input error" ;; esac

June 18, 2013

算法第二课笔记

大O符号 $f(n)=O(g(n))$ 的意思是存在常数 $c>0$ 和 $n>{n}_{o}$ ,使得 $$0 \leq f(n) \leq cg(n)$$ 其中 $n\geq{n}_{o}$ 例子 $2{n}^{2}=O({n}^{3})$ 其实在这些符号的等号不是相等的意思,而是是的意思。在这个例子中,$O({n}^{3})$ 是$2{n}^{2}$的上界,这是显而易见的。 $\Omega$符号 有上界就会有下界,定义与O差不多,只是符号反了过来 例子 $$\sqrt{n}=\Omega(lgn)$$ $\Theta$符号 定义为$O$与$\Omega$的交集。 $$ \Theta(g(n))=O(g(n))\bigcap\Omega(g(n)) $$ 解递归 解递归没有特定的方法,这里有三种解递归的方法。 方法一:递推法 递推法常用来检验解递归公式的正确性,因为其第一步的动作是要猜测递归的解大概是什么。下面是基本流程 猜测结果是什么 用归纳法验证 求出常数项 例子 $$T(n)=4T(n/2)+n$$ ...

June 5, 2013

第七章:加速

##习惯使用hjkl 抛弃方向键吧,事实证明,在vim中,使用hjkl移动更加高效,因为手不需要跑去摸方向键,一切操作都在某个范围内即可完成。 在普通模式,hjkl的定义是这样的 h 左 j 下 k 上 l 右 ##区分实际行与显示行 有时候,由于vim窗口的大小限制,一行的数据可能会被截断成两行显示,而我们在进行移动时,默认是按真实的行数来移动的,但是有时候只是想移动同一真实行的后半部分,我们可以使用gj和gk来进行移动。还有一些其他的快捷键,如下: 键值 作用 j 真实行下移 gj 显示行下移 k 真实行上移 gk 显示行上移 0 跳到真实行的第一个字符 g0 跳到显示行的第一个字符 ^ 跳到真实行第一个非空字符 g^ 跳到显示行第一个非空字符 $ 跳到真实行的最后一个字符 g$ 跳到显示行最后一个字符 如果想j来跳转显示行,可以这样配置 :::sh nnoremap k gk nnoremap gk k nnoremap j gj nnoremap gj j ##在单词间跳转 直接给出相关命令。 命令 作用 w 跳到下一单词的开头 b 跳到当前或之前单词的开头 e 跳到当前或下一单词的结尾 ge 跳到前一单词的结尾处 ##查找字母 ...

May 30, 2013