乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      arm-linux一句話備忘錄

       敗敗0619 2012-10-10

      1.uboot傳遞給linux內核的nfs啟動命令行:

      setenv bootargs mem=64M console=ttyS0,57600 root=/dev/nfs rw nfsroot=192.168.1.6:/home/linucos/
      newmsg/nfsroot nfsaddrs=192.168.1.8:192.168.1.6:192.168.1.1:255.255.255.0

      備注:自己ip:服務ip:網(wǎng)關:掩碼

      2.uboot傳遞給linux內核的nandflash上文件系統(tǒng)的命令行:

      setenv bootargs console=ttyS0,57600 root=/dev/mtdblock0  init=/linuxrc rootfstype=jffs2

      備注:(此處0對應第一個分區(qū),類推1對應第二個分區(qū),分區(qū)見內核arch相關目錄)

      3. uboot傳遞給linux內核內存ramdisk文件系統(tǒng)的命令行:

      setenv bootargs console=ttyS0,57600 root=/dev/ram0 rw initrd=0x21100000,15360000 init=/linuxrc

      備注:initrd=指示文件系統(tǒng)在內存中的位置,壓縮前大??;同時,內核要進行相應的配置

      4. busybox下tftp命令使用:

      tftp -r tmp -g 192.168.1.6

      得到服務器192.168.1.6上的tmp文件,-g表示get,-r表示remote,192.168.1.6表示服務器ip

      同理,

      tftp –l tmp –p 192.168.1.6

      保存本地tmp到192.168.1.6上,-p表示put,-l表示local,192.168.1.6依然是服務器ip

      5. 查看linux分區(qū)

      cat /proc/partitions

      可以看見分區(qū)的設備名,主次設備號等很實用的

      6.同步串口和LCD顯示

      只要在原來的bootargs上加:console=tty0即可,如:

      setenv bootargs console=ttyS0,57600 console=tty0 root=/dev/mtdblock0  init=/linuxrc rootfstype=jffs2

      7.linux出現(xiàn)不能登錄的情況,即使用戶名root正確

      (使用denx官方的文件系統(tǒng),比較全面,很好)

      可能是因為etc目錄下配置文件被chmod以為改變權限,解決辦法是:直接copy新的etc目錄即可,同時注意保留修改過的profile等配置文件

      8.普通linux C程序簡單休眠

      包含 #include   <unistd.h>

      sleep(5);即可

      9.修改root環(huán)境變量

      root登錄后,(ubuntu命令是sudo su)

      編輯~/.bashrc文件,新增變量直接寫變量如:

      JAVA_HOME=/home/.../java所在文件夾

      編輯已有變量如:

      JAVA_HOME=$JAVA_HOME:/home/.../java所在文件夾

      10.終端下快速進入埋藏很深的工作目錄的方法

      有時候工作目錄會很深,簡便的辦法是:~/.bashrc下增加環(huán)境變量即可,如:

      工作目錄 /home/..../works

      增加環(huán)境變量WK=/home/..../works

      export WK

      每次使用只有cd $WK即可

      11.ubuntu圖形界面用root權限操作

      很多時候ubuntu下,只能在終端下root登錄操作文件,現(xiàn)在不用了,用下面的方法:

      sudo gnome-open 文件夾名稱,如:

      sudo gonme-open / 用root權限打開根目錄了

      12.SecureCRT終端回滾行數(shù)

      有時候,終端結果回滾的行數(shù)會很多,有些錯誤被后邊的行覆蓋掉

      設置 會話選項-回滾緩沖區(qū) 值就可以了,比如5000

      13.linux 開機logo制作方法

      從最初的png圖片,制作到最后的ppm圖片

      # pngtopnm img.png > img.pnm
      # pnmquant 224 img.pnm > img1.pnm
      # pnmtoplainpnm img1.pnm > logo_linux_clut224.ppm
      14.ln 軟連接和硬鏈接之間的區(qū)別
      ln -s file1 file2 表示建立file2,file2是file1的符號鏈接,也就是軟連接,此時file1不一定存在
      ln file1 file2 表示建立file2,file2是file1的硬鏈接,也就是inode備份,此時file1必須存在
       在同一個分區(qū)或者說 同一個文件系統(tǒng) 中, 多個文件的物理存貯位置一樣, 只是目錄項 分別在不同的目錄下, 或者文件名(也是一個目錄項) 各不相同. 這種存貯方式 是 硬連接. 如果要連接到另一個分區(qū)的目錄下, 只能用軟連接. ls -l 時可以看到, 軟連接只是存了一個字符串, 通過這個字符串, 系統(tǒng)就可以訪問其代表的文件. 如果是硬連接, ls -l 時可以看到文件的連接數(shù). 刪除一個硬連接, 其他文件ls -l時看到的連接數(shù)就少一個. 當刪除最后一個連接時, 系統(tǒng)將釋放該文件的存貯空間
      例如:
      三個文見 file1 file2 file3
      file2 是 file1 的soft link
      file3 是 file1 的hard link
      file1 的 inode 是100, 那么
      file3 的 inode 一定是 100, file2的肯定不是100.
      即使你刪除了 file2 和 file3, 但是file1 仍然存在.
      假如你刪除了 file1, 那么 file2 一定抱錯, 因為它的"父母"沒了.
      但file3仍然一切正常. 就好象 copy f1 f3 了一樣, 并且保持同樣的 inode
      15.busybox做的根文件系統(tǒng)出現(xiàn)Kernel panic - not syncing: No init found.  Try passing init= option to kernel.,或者明明目錄先有文件卻說can't execute './framebuffer': No such file or directory
      常見原因以下兩個:沒有相應的so動態(tài)庫,為什么沒有報沒有庫卻說No such file or directory,估計是因為busybox實現(xiàn)不標準;也可能是由于內核的編譯器舊,而編譯應用的編譯器新,造成不能執(zhí)行busybox或者應用
      16.qtopia2.2.0使用usb鼠標和usb鍵盤
      設置一下環(huán)境變量即可
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ARM/qtopia/lib
      QTDIR=/usr/local/ARM/qtopia
      QPEDIR=/usr/local/ARM/qtopia
      QWS_MOUSE_PROTO=USB:/dev/mouse0
      export PATH PS1 LD_LIBRARY_PATH QPEDIR QTDIR QWS_MOUSE_PROTO
      17.自動登錄用busybox做的的根文件系統(tǒng)
      busybox的init,似乎沒有處理非登錄用戶的profile,所以很多東西不好處理,但是getty登錄的話,每次要輸入用戶名,經(jīng)過分析發(fā)現(xiàn),
      getty最終把用戶名傳遞給了login,同時root可以配置成無密碼登錄,所以inittab腳本中,用以下方法自動登錄root用戶:
      ttyS0::respawn:/bin/login root 其中ttyS0為控制tty,respawn等用法參見:
      18.insmod lsmod rmmod有時候需要在根文件系統(tǒng)的lib/modules/<內核版本如:2.6.32>/目錄下存放模塊
      否則會出現(xiàn)類似:
      insmod: chdir(2.6.26.6): No such file or directory rmmod: module 'hello_world' not found等錯誤
      插入模塊 insmod hello.ko,查看模塊 lsmod,卸載模塊 rmmod hello
      19.konqueror配置語句
      root@linucos-desktop:/home/linucos/newmsg/9261/works/konqueror-embedded-snapshot-20030705# ./configure --host=arm-linux --target=arm-linux --enable-embedded --enable-qt-embedded  --with-gui=qpe --disable-debug --enable-ftp --enable-static --disable-shared --disable-mt --with-extra-libs=/home/linucos/newmsg/tools/eldk41gcc40/arm/lib:/home/linucos/newmsg/gui/qtopia/qtopia-free-2.2.0/qtopia/lib:/usr/local/ARM/qtopia/lib:/usr/local/ARM/libs --with-extra-includes=/home/linucos/newmsg/tools/eldk41gcc40/arm/usr/include:/home/linucos/newmsg/gui/qtopia/qtopia-free-2.2.0/qtopia/include:/usr/local/ARM/includes -without-ssl --with-qt-dir=$QTDIR:/usr/local/ARM/qtopia --with-qt-includes=/home/linucos/newmsg/gui/qtopia/qtopia-free-2.2.0/qt2/include:/usr/local/ARM/includes --with-qt-libraries=/home/linucos/newmsg/gui/qtopia/qtopia-free-2.2.0/qt2/lib:/usr/local/ARM/qtopia/lib --with-qtopia-dir=$QPEDIR:/usr/local/ARM/qtopia/
      結論是,部分庫沒有找到時候可以這樣,:號分開所有可能的lib和include即可
      20.printk輸出級別和默認級別
      沒有指定日志級別的printk語句默認采用的級別是 DEFAULT_ MESSAGE_LOGLEVEL(這個默認級別一般為<4>,即與KERN_WARNING在一個級別上),其定義在linux26/kernel/printk.c中可以找到
        日志級別一共有8個級別,printk的日志級別定義如下(在include/linux/kernel.h中):
        #define KERN_EMERG    0/*緊急事件消息,系統(tǒng)崩潰之前提示,表示系統(tǒng)不可用*/
        #define KERN_ALERT     1/*報告消息,表示必須立即采取措施*/
        #define KERN_CRIT       2/*臨界條件,通常涉及嚴重的硬件或軟件操作失敗*/
        #define KERN_ERR        3/*錯誤條件,驅動程序常用KERN_ERR來報告硬件的錯誤*/
        #define KERN_WARNING  4/*警告條件,對可能出現(xiàn)問題的情況進行警告*/
        #define KERN_NOTICE    5/*正常但又重要的條件,用于提醒*/
        #define KERN_INFO       6/*提示信息,如驅動程序啟動時,打印硬件信息*/
        #define KERN_DEBUG     7/*調試級別的消息*/
      所以,0處在在高級別上,輸出時候,使用printk(KERN_EMERG "msg");即可
      21.qtopia會出現(xiàn)各種詭異問題
      qtopia出現(xiàn)問題時,很多情況下,不是大問題,而是環(huán)境變量的問題,如設置mouse,導致串口不能用,設置keyboard,導致鼠標不好用等等
      22.qtopia關鍵代碼位置
      qtopia-2.2.0基本就在qtopia_root/qt2/src/kernel/Qgfxraster_qws.cpp附近
      23.去掉linux開機logo上的光標
         在內核的當前目錄進入到drivers/video/console/fbcon.c文件
       將static void fb_flashcursor(void *private)制成空函數(shù)如下

         同樣的方法將函數(shù)static void fbcon_cursor(struct vc_data *vc, int mode)用空函數(shù)替換

      24.ubuntu停止和開啟圖形界面服務

      /etc/init.d/gdm stop就可以停止圖形服務

      /etc/init.d/gdm start開啟圖形服務

      25.改變uboot和linux內核內容輸出串口

      uboot中簡單的修改,include/configs/<board_name>.h配置文件即可,我的修改:

      #define CONFIG_ATMEL_USART 1
      #define CONFIG_USART0  1
      #undef CONFIG_USART1
      #undef CONFIG_USART2
      #undef CONFIG_USART3  1 /* USART 3 is DBGU */ 原來是dbug口,undef后不使用了

      linux中,一般在io_map下,兩個內容需要做:

      第一是添加相應串口設備,第二是注冊相應串口為串口控制臺,我的修改如下:

       /* DBGU on ttyS0. (Rx & Tx only) */
       at91_register_uart(0, 0, 0); //原來的

       /* USART0 on ttyS1. (Rx & Tx only) */
       at91_register_uart(AT91RM9200_ID_US0, 1, 0);  //新加的

       /* set serial console to ttyS0 (ie, DBGU) */
       at91_set_serial_console(0); //原來的

       /* set serial console to ttyS0 (ie, uart0) */
       at91_set_serial_console(1); //新加的

      內核配置中,稍有修改,調整早期輸出到相應串口選項即可,此選項一般在相應的板子類型下,我的修改成uart0

      同時,uboot給linux傳遞參數(shù)注意添加console=ttyS1等

      26.tar 命令小結

        tar -xvf foo.tar
                    verbosely extract foo.tar
        tar -xzf foo.tar.gz
                    extract gzipped foo.tar.gz
        tar -cjf foo.tar.bz2 bar/
                    create   bzipped   tar  archive  of  the  directory  bar  called
                    foo.tar.bz2
        tar -xjf foo.tar.bz2 -C bar/
                    extract bzipped foo.tar.bz2 after changing directory to bar
        tar -xzf foo.tar.gz blah.txt
                    extract the file blah.txt from foo.tar.gz

      27.cp 命令小結

      cp source target

      - a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項的組合。
      - d 拷貝時保留鏈接。
      - f 刪除已經(jīng)存在的目標文件而不提示。
      - i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認?;卮饄時目標文件將被覆蓋,是交互式拷貝。
      - p 此時cp除復制源文件的內容外,還將把其修改時間和訪問權限也復制到新文件中。
      - r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
      - l 不作拷貝,只是鏈接文件。

      28.jffs2文件系統(tǒng)制作

      mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x4000 -n

      更多選項直接 mkfs.jffs2 help

      29.給開發(fā)板增加域名解析

      自己做了根文件系統(tǒng)之后,發(fā)現(xiàn)ping www.baidu.com不行,因為沒有設置域名解析服務器,解決辦法也很簡單:

      touch /etc/resolv.conf

      那么怎么獲取dns 地址呢?也和簡單的,因為開發(fā)板一般和主機用一個路由,所以呢,看看本機/etc/resolv.conf下面的地址就好了,如樣添加即可,我的是:

      nameserver 202.101.172.35
      nameserver 202.101.172.47 

      30.qtopia-2.2.0編譯x86版本

      進入源碼根目錄后,簡單的:

      ./configure -qpe '-prefix=/usr/local/ARM/qtopia_x86'

      make

      make install

      -qpe 是指 qtopia的配置參數(shù),同時-qte 是指qt-embbed;install 后prefix指定的目錄下,既有安裝后的x86版本的qtopia了

      31.pc上模擬qtopia

      我們使用工具qvfb來模擬qtopia,這里用2.2.0版本,根據(jù)30中步驟編譯成功后:

      qvfb -height 240 -width 320 &

      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ARM/qtopia_x86

      QTDIR=/usr/local/ARM/qtopia_x86

      QPEDIR=/usr/local/ARM/qtopia_x86

      /usr/local/ARM/qtopia_x86/bin/qpe &

      如果,

      想要開機啟動自己做的東西,不要顯示qtopia桌面的話,直接:

      /usr/local/ARM/qtopia_x86/bin/music -qws&

      31.linux配置網(wǎng)絡

      ifconfig lo 127.0.0.1

      ifconfig eth0 192.168.1.58 netmask 255.255.255.0

      route add default gw 192.168.1.1

      以上使用busybox 1.15

      32.uboot操作nor flash和nand flash

      習慣上nor flash被稱作flash,nand flash被稱作nand flash,很多情況下,涉及到nor和nand的讀寫

      nor讀

      cp 0x10000000 0x22000000 0x50000

                 從哪                  到哪          長度

      nor寫

      cp 0x22000000 0x10000000 0x50000

                從哪                  到哪           長度

      nand讀

      nand read 0x22000000 0xa0000 0x200000

                            到哪              從哪         長度

      nand write 0x22000000 0xa0000 0x200000

                            從哪              到哪         長度

      33.uboot自行執(zhí)行命令的方法

      在需要執(zhí)行某命令的地方運行函數(shù)run_command("","")即可,如:

      run_command("nand read 0x22000000 0xa0000 0x200000;bootm", "");

      即可自動執(zhí)行了

      34.linux的io重定向

      a、 I/O重定向通常與 FD有關,shell的FD通常為10個,即 0~9;
      b、 常用FD有3個,為0(stdin,標準輸入)、1(stdout,標準輸出)、2(stderr,標準錯誤輸出),默認與keyboard、monitor、monitor有關;
      c、 用 < 來改變讀進的數(shù)據(jù)信道(stdin),使之從指定的檔案讀進;
      d、 用 > 來改變送出的數(shù)據(jù)信道(stdout, stderr),使之輸出到指定的檔案;
      e、 0 是 < 的默認值,因此 < 與 0<是一樣的;同理,> 與 1> 是一樣的;
      f、 在IO重定向 中,stdout 與 stderr 的管道會先準備好,才會從 stdin 讀進資料;
      g、 管道“|”(pipe line):上一個命令的 stdout 接到下一個命令的 stdin;

      cmd > file 把 stdout 重定向到 file 文件中;
      cmd >> file 把 stdout 重定向到 file 文件中(追加);
      cmd 1> fiel 把 stdout 重定向到 file 文件中;
      cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中;  

      cmd 2> file 把 stderr 重定向到 file 文件中;

      cmd 2>> file 把 stderr 重定向到 file 文件中(追加);  

      cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中(追加);

      cmd < file >file2 cmd 命令以 file 文件作為 stdin,以 file2 文件作為 stdout;
      cat <>file 以讀寫的方式打開 file;
      cmd < file cmd 命令以 file 文件作為 stdin;
      cmd << delimiter Here document,從 stdin 中讀入,直至遇到 delimiter 分界符

      35.終端語法高亮

      終端分為兩種:1.本地 2.遠程

      本地一般是xterm,遠程則是secureCRT之類

      apt-get install vim 即可替代原有vi無語法高亮的不足

      secureCRT中設置終端類型為xterm linux等,重新登錄ssh,即可語法高亮

      當然,也可修改/etc/vim/vimrc中的相關選項

       36.ls或其他命令不能用

      注意是不是無意間改變了so共享庫的查找路徑LD_LIBRARY_PATH,出現(xiàn)

      ls: error while loading shared libraries: libc.so.6: ELF file OS ABI invalid

      只需要修改回來即可

      37.qtopia顯示中文與中文化

      顯示中文兩個條件:1.支持中文編碼,如utf8。 2. 有中文字體,qtopia默認沒有開啟unicode支持,開啟即可,qtopia的unifont支持中文,詳細顯示中文和中文化參照地址:http://blog.csdn.net/linucos/archive/2010/03/24/5413257.aspx

      38.konqueror支持中文,qtopia能顯示中文后,konqueror即可顯示中文了,否則嘗試選擇相應字體或者重新編譯

      39.qtopia中文輸入法

      MurphyPinyin輸入法,移植相當簡單,不再贅述

      40.arm linux LCD不能正常顯示

      一般的3.5的tft lcd默認是RGB的24bit模式,且RGB順序是高位R低位B,屏幕一般不要初始化即可使用,不能正常顯示的原因從以下幾個入手:

      <1>行長 幀長 行前 行后 幀前 幀后,決定了屏幕顯示是否在正確位置,可能硬件沒連接好,可能控制器信號沒送出

      <2>屏幕正常顯示,但是閃動或抖動,可以查找clk速率的問題

      <3>同時 行長 幀長 行前 行后 幀前 幀后 數(shù)據(jù)使能 時鐘,幾個信號的相位可能導致顯示不出來或者顯示不正常

      <4>正常顯示,但是顏色不正常,注意R和B的順序,同時16bit模式下的555和565問題,可以配置linux內核到24位模式嘗試

      41.c程序加printf調試方法

      #if defined(DBG)
      #define dbg_printf(fmt,arg...) /
      printf(fmt, ##arg)
      #else
      #define dbg_printf(...) /
      do {}while(0);
      #endif

      #if defined(HYBRIDOS_SAMPLE_DEBUG)
      #define dbg_printf(fmt,arg...) do{printf(fmt, ##arg);}while(0)
      #else
      #define dbg_printf(fmt,arg...) do {}while(0)
      #endif

      42.linux nand flash mtd分區(qū)技巧

      可以把最后一個分區(qū)的.size設置成MTDPART_SIZ_FULL, /* Occupy rest of flash */ ,表示剩余大小

      43.jffs2文件系統(tǒng)制作注意

      mkfs.jffs2 -r xxx -o xxx.jffs2 -e 擦除大小 -n 沒有clean marker -p 不指定大小填充到最后一個eraseblock

      一般擦除大小根據(jù)nand 手冊確定,64M為0x4000 即16K,128M為0x20000 即128K

      44.注意mac地址哦

      ifconfig eth0 down
      ifconfig eth0 hw ether 00:00:AA:BB:CC:DD
      ifconfig eth0 up

      45.讓linux內核支持yaffs2

      需要給內核打個補丁(2.6.30),之后內核配置的時候選擇下,制作工具分為大page和小page區(qū)別,制作即可

      46.linux內核解壓后停止

      出現(xiàn):

      Uncompressing Linux................................................................................................................................ done, booting the kernel.

      停止

      解決辦法,可以嘗試bootargs添加mem參數(shù)

      47.linux驅動架構簡單跟蹤

      linux驅動架構,主要是分層,便于管理咯:比如聲音的驅動,先要添加設備,之后再初始化驅動,添加platform設備便于管理,真正的工作在驅動中做
      module_init(at91uda1341_init);
      上邊的init函數(shù)中調用了2個關鍵函數(shù):
      at91_add_device_at91uda1341 和 platform_driver_register
      這個其實是注冊了設備的,注冊的設備過程中,最主要的也是初始化了需要用管腳,當然放到驅動初始化中也行,為什么要放在這里呢?才像是告訴后來的設備,這個管腳已經(jīng)使用了,如果檢測到被用了,干脆設備都不要注冊了~因為沖突了~module_exit指定的函數(shù)會自動調用的,放在特殊的段里~
      還有個關鍵函數(shù)是 snd_at91uda1341_probe();
      這個是初始化了函數(shù)了,除了管腳外,所有的初始化都放在probe里了~probe什么時候調用呢~?
      蹤影是:
      platform_driver_register(&at91uda1341_driver); --》
      driver_register(&drv->driver); --》
      bus_add_driver(drv); --》
      driver_attach(drv); --》
      bus_for_each_dev(drv->bus, NULL, drv, __driver_attach); --》
      注意參數(shù)__driver_attach,他其實是個函數(shù)指針
      跟著bus_for_each_dev發(fā)現(xiàn)
      fn(dev, data); fn其實是__driver_attach,
      跟著__driver_attach
      driver_probe_device(drv, dev); --》
      really_probe(dev, drv); --》
      drv->probe(dev); 此處是真正的probe函數(shù)被調用了的~
      綜上,也就是module_exit的時候,設備也添加了,驅動也初始化了~

      總之呢,一個注冊設備分配管腳,一個初始化驅動~

      48.uboot的環(huán)境變量保存

      --1--保存在nand

      #define CONFIG_SYS_USE_NANDFLASH

      #define CONFIG_ENV_IS_IN_NAND

      --2--保存在nor

       

       

       

      #define CONFIG_SYS_USE_FLASH

      #define CONFIG_ENV_IS_IN_FLASH

      其他編譯時候缺什么宏,補上就可以了~

      49.uboot環(huán)境變量保存地址

       #define CONFIG_ENV_OFFSET    0x60000

      即是相對存儲設備的偏移

      50.make menuconfig中本來有的選項沒有出現(xiàn),不能選擇

      檢查下,是不是依賴哪個依賴的條件沒有被選中,選中即可

      51.如何去掉make menuconfig中的依賴關系

      所用模塊的文件夾下找kconfig腳本,找到你想找的項目,下面會發(fā)現(xiàn):

      config TOUCHSCREEN_AD7877
       tristate "AD7877 based touchscreens"
       depends on SPI_MASTER

      depends on字樣就是依賴關系,去掉即可顯示了,但是會依賴其他問題,那是后話

      52.linux下gpio中斷問題

      error = request_irq(gpio_to_irq(AT91_PIN_PA21),
         uh7843_ts_interrupt,
         0,
         "Touchscreen driver", pdev);

      一般這樣申請,注意如果改成

      error = request_irq(gpio_to_irq(AT91_PIN_PA21),
         uh7843_ts_interrupt,
         IRQF_SHARED,
         "Touchscreen driver", pdev);

      申請失敗,原因還沒有探究

      53.linux輸入子系統(tǒng)理解

      linux輸入子系統(tǒng)分為3層來理解:

      --1--driver

      驅動硬件,需要想core層注冊輸入設備,所有的信息通過標準消息通知core

      --2--core

      處理核心,與驅動關系不大

      --3--event handle

      事件處理,針對不同的設備有不同的時間,具體見driver/input/evdev.c,設備文件也是在此建立的,現(xiàn)在大多event handler都用此文件

      54.arm匯編點燈

       #if 0
       mov r0, #0x1
       mov r2, #0x0
       str r0, [r2,#0xfffff800]
       mov r0, #0x1
       mov r2, #0x0
       str r0, [r2,#0xfffff810]
       mov r0, #0x1
       mov r2, #0x0
       str r0, [r2,#0xfffff830]
       #endif

      55.arm的C語言點燈

      void shine_led(void)

       volatile unsigned int cnt = 0;
       volatile unsigned int dly = 0;
       *((unsigned int*)(0xfffff800 + 0x0)) = (0x1<<0);
       *((unsigned int*)(0xfffff800 + 0x10)) = (0x1<<0);
       for (cnt = 0; cnt < 6; ++cnt)
       {
        if(cnt%2)
        *((unsigned int*)(0xfffff800 + 0x30)) = (0x1<<0); 
        else
        *((unsigned int*)(0xfffff800 + 0x34)) = (0x1<<0);
        for(dly = 0; dly < 50000; ++dly);

        for(dly = 0; dly < 50000; ++dly);

        for(dly = 0; dly < 50000; ++dly);


       }
      }

      56.內建環(huán)境變量

      #define CONFIG_IPADDR 192.168.1.158
      #define CONFIG_ETHADDR 12:34:56:78:90:12
      #define CONFIG_SERVERIP 192.168.1.60

       

      57.shell判斷文件存在與否

      ptcf="/etc/pointercal"

      if [ ! -f "$ptcf" ]; then
       /etc/tslib/bin/ts_calibrate
      fi

      57.uboot保存環(huán)境變量技巧

      有時候我們需要nfs和mtd切換啟動,復制粘貼不放心,敲來敲去麻煩,可以使用下面的方法,看例子即知道怎么做

      ba0=console=ttyS0,57600 root=/dev/mtdblock0 rw init=/linuxrc rootfstype=jffs2
      ba1=console=ttyS0,57600 root=/dev/nfs rw nfsroot=192.168.1.60:/home/linucos/newmsg/nfsroot_busybox nfsaddrs=192.168.1.192:192.168.1.60:192.168.1.1:255.255.255.0 mem=64M
      bootargs=console=ttyS0,57600 root=/dev/mtdblock0 rw init=/linuxrc rootfstype=jffs2

      實際上其中的bootargs設置是這樣的

      setenv bootargs $(ba0)

      也就是uboot可以定義環(huán)境變量的,這樣,切換啟動方式方便至極

      58.arm-linux登錄多個串口終端自動登錄

      inittab中

      ::respawn:/sbin/getty -n -l /bin/autologin 57600 ttyS2
      ttyS0::respawn:/bin/login root

      這樣寫,實際上login能夠實現(xiàn)自動登錄的,但是不能設置波特率,但是getty可以的,但是換做getty的話,自動登錄要經(jīng)過一個腳本,

      /bin/autologin內容如下

      #! /bin/sh
      /bin/login -f root

      以上設置可以實現(xiàn)多串口登錄,且自動登錄

      59.ubuntu9.10更新源

      gedit /etc/apt/sources.list

      網(wǎng)上找找好源

      類似

      deb http://tw.archive./ubuntu/ karmic main universe restricted multiverse
      deb http://tw.archive./ubuntu/ karmic-updates universe main multiverse restricted
      deb http://tw.archive./ubuntu/ karmic-proposed universe main multiverse restricted
      deb http://tw.archive./ubuntu/ karmic-security universe main multiverse restricted
      deb http://tw.archive./ubuntu/ karmic-backports main multiverse restricted universe
      deb-src http://tw.archive./ubuntu/ karmic main universe restricted multiverse
      deb-src http://tw.archive./ubuntu/ karmic-security universe main multiverse restricted
      deb-src http://tw.archive./ubuntu/ karmic-updates universe main multiverse restricted
      deb-src http://tw.archive./ubuntu/ karmic-proposed universe main multiverse restricted
      deb-src http://tw.archive./ubuntu/ karmic-backports universe main multiverse restricted
      保存后,

      aptitude update #更新列表
      ok~看看有沒有可用的軟件吧~

      60. 查看linux內核支持的架構

      根目錄下 ls arch/arm/configs/

      61. ubuntu備份好工具

      remastersys

      62.ubuntu設置終端語言

      export LANGUAGE=en_US.UTF-8

      export LANG=en_US.UTF-8

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多