Chinaunix首页 | 论坛 | 博客
  • 博客访问: 458051
  • 博文数量: 40
  • 博客积分: 1410
  • 博客等级: 军士长
  • 技术积分: 1396
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-22 19:26
个人简介

嵌入式系统工程师,从事视频、图像、网络、虚拟化等方面的底层软件开发与优化。

文章存档

2014年(4)

2013年(10)

2012年(14)

2011年(12)

分类: LINUX

2012-04-21 22:12:55

1. 无法卸载动态加载的模块
如图所示情况:
在lib/modules目录下创建3.2.8-JasonARM目录即可卸载。

2. 帧缓冲驱动已移植成功后,为了启动QT,配置了Networking support与Gernel Setup下的内核选项,因界面中用了socket及信号量,具体配置参考友善之臂,不详细列出。

3. 修改启动后终端中主机名
可以再/etc/init.d/rcS文件中,添加如下代码:

点击(此处)折叠或打开

  1. /bin/hostname JasonARM
如上修改后,终端显示如下:

点击(此处)折叠或打开

  1. [root@JasonARM /]#

4. 编译小技巧
   使用verbose模式,将每一步执行的命令都打印出来,并重新定向到一个文件中去这样以后方便查找模块之间的依赖关系。
   # make V=1 > ~/bat.txt

    执行make htmldocs/pdfdocs/psdocs之后,在Documentation/DocBook/目录下,会生成一些很重要的文档:
    A.kernel-api: 内核开发的API手册;
    B.kernel-locking: 内核加锁的HOWTO文档;
    C.kernel-hacking: 内核开发的一些注意事项;
    D.usb: USB Host端的API手册;
    E.gadget: USB Device端的API手册.

5. 64位Ubuntu运行32位arm-linux-gcc
    需要安装 ia32-libs
    apt-get install ia32-libs

6.  官方ndk与android系统自带ndk在编译浮点运算程序时运算时间的差距
    使用谷歌官方提供的ndk(android-ndk-r9-linux-x86.tar.bz2)编译带浮点运算的c代码,运算时间长,而使用Android-4.0.1中的ndk编译,运算时间大大缩短,从9.7秒左右到1.3秒左右!(这里的时间为直接编译成C代码在手机上执行,下面的时间为打包成apk时计算时间)
    解决办法:在应用程序的JNI目录下添加Application.mk,如下。

点击(此处)折叠或打开

  1. # Build both ARMv5TE and ARMv7-A machine code.
  2. NDK_TOOLCHAIN_VERSION := 4.4.3
  3. APP_ABI := armeabi-v7a #armeabi
  4. APP_MODULES :=libXXX
  5. APP_OPTIM := release
  6. OPT_CFLAGS := -O2 -fno-exceptions -fno-rtti -fno-bounds-check -funroll-loops -funswitch-loops -fvisibility=hidden \
  7.               -finline-functions -funsafe-loop-optimizations -march=armv7 \
  8.               -mfloat-abi=softfp -mfpu=neon
  9.               
  10. OPT_CPPFLAGS := $(OPT_CLFAGS)
  11.   
  12. APP_CFLAGS := $(APP_CFLAGS) $(OPT_CFLAGS)
  13. APP_CPPFLAGS := $(APP_CPPFLAGS) $(OPT_CPPFLAGS)
     经过测试,起到作用的选项是OPT_CFLAGS,这个选项直接把运行时间缩短为1.30左右;如果不加这个选项,但是保留其余,运行时间1.65秒左右;如果注释掉OPT_CFLAGS和APP_ABI 两项,运行时间则高达11.20秒左右!

7.  Ubuntu12.04设置root自动登录
    >> sudo passwd root //根据提示,设置root密码
    >> gedit /etc/lightdm/lightdm.conf & 
    修改autologin-user=leon为
    autologin-user=root //按装操作系统时,已设置自动登录,其余无需配置
    >> reboot //自动为root用户

8. VirtualBox共享文件夹设置
    按装VirtualBox增强功能:设备->安装增强功能

    a. 关闭Ubuntu,VirtualBox->设置->数据空间->固定分配:添加共享文件夹路径与共享名。(注意,千万别选中自动挂载,否则反而不能自动挂载。)
    b. 启动Ubuntu,新建文件夹“mkdir /mnt/share”,挂载“mount -t vboxsf Linux_Win7_Share  /mnt/share/”。
    c. 开机自动挂载,/etc/fstab中添加一行,保存
    “Linux_Win7_Share /mnt/share vboxsf defaults 0 0”

9. *** glibc detected *** ./DownSample: munmap_chunk(): invalid pointer: 0xb75a4608 ***
    malloc分配的指针被修改以后,再传给free,导致了munmap错误。

10. 中文文本乱码
复制以下命令到终端中,然后回车即可:

点击(此处)折叠或打开

  1. gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8','GB18030','GB2312','GBK','BIG5','CURRENT','UTF-16']"

11. 使用KVM加速Android Emulator启动速度
详细见文章:


12. 使用adb push命令返回Read-only file system解决方法
四个命令解决: 
adb shell
# mount -o remount rw / 
# exit
adb remount

13. 使用deb包更新无网络的Ubuntu机器
        有时候我们的Ubuntu机器因为某种原因不能连网,我们可以通过在可以上网的Ubuntu机器上下载deb包,然后拷贝到不能连网的Ubuntu机器上的响应目录进行安装。
        在能连网的机器上:
            # rm /var/cache/apt/archives/* -rf
            # apt-get install ***
        因为apt-get install的命令会缓存在“/var/cache/apt/archives/”目录,所以先清除原有的文件,以免混在一起。
        在不能连网络的机器上,拷贝deb包到“/var/cache/apt/archives/”目录,然后
            # apt-get install ***
即可。


14. 64位Ubuntu12.04系统编译Android4.0.3系统提示“cannot find -lncurses”
   安装32位的库:apt-get install libncurses5-dev:i386

15. SecureCRT中文乱码
    a. 修改环境变量LANG
       我的是Lubuntu系统,在/etc/init.d/rc中添加一行:
            export LANG=zh_CN.UTF8
   b. 设置SecureCRT
        “Option”->“Session Option”->“Appearance”:
            右边“Character”下拉菜单里选择“UTF-8”;
            点击“Font...”,弹出菜单里“字体”选择“新宋体”;




阅读(5576) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~