小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

arm-linux一句話備忘錄

 敗敗0619 2012-10-10

1.uboot傳遞給linux內(nèi)核的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:服務(wù)ip:網(wǎng)關(guān):掩碼

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

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

備注:(此處0對應(yīng)第一個分區(qū),類推1對應(yīng)第二個分區(qū),分區(qū)見內(nèi)核arch相關(guān)目錄)

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

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

備注:initrd=指示文件系統(tǒng)在內(nèi)存中的位置,壓縮前大?。煌瑫r,內(nèi)核要進(jìn)行相應(yīng)的配置

4. busybox下tftp命令使用:

tftp -r tmp -g 192.168.1.6

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

同理,

tftp –l tmp –p 192.168.1.6

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

5. 查看linux分區(qū)

cat /proc/partitions

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

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以為改變權(quán)限,解決辦法是:直接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.終端下快速進(jìn)入埋藏很深的工作目錄的方法

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

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

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

export WK

每次使用只有cd $WK即可

11.ubuntu圖形界面用root權(quán)限操作

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

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

sudo gonme-open / 用root權(quán)限打開根目錄了

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

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

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

13.linux 開機(jī)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ù)就少一個. 當(dāng)刪除最后一個連接時, 系統(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
常見原因以下兩個:沒有相應(yīng)的so動態(tài)庫,為什么沒有報沒有庫卻說No such file or directory,估計是因為busybox實現(xiàn)不標(biāo)準(zhǔn);也可能是由于內(nèi)核的編譯器舊,而編譯應(yīng)用的編譯器新,造成不能執(zhí)行busybox或者應(yīng)用
16.qtopia2.2.0使用usb鼠標(biāo)和usb鍵盤
設(shè)置一下環(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/<內(nèi)核版本如: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/
結(jié)論是,部分庫沒有找到時候可以這樣,:號分開所有可能的lib和include即可
20.printk輸出級別和默認(rèn)級別
沒有指定日志級別的printk語句默認(rèn)采用的級別是 DEFAULT_ MESSAGE_LOGLEVEL(這個默認(rèn)級別一般為<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/*臨界條件,通常涉及嚴(yán)重的硬件或軟件操作失敗*/
  #define KERN_ERR        3/*錯誤條件,驅(qū)動程序常用KERN_ERR來報告硬件的錯誤*/
  #define KERN_WARNING  4/*警告條件,對可能出現(xiàn)問題的情況進(jìn)行警告*/
  #define KERN_NOTICE    5/*正常但又重要的條件,用于提醒*/
  #define KERN_INFO       6/*提示信息,如驅(qū)動程序啟動時,打印硬件信息*/
  #define KERN_DEBUG     7/*調(diào)試級別的消息*/
所以,0處在在高級別上,輸出時候,使用printk(KERN_EMERG "msg");即可
21.qtopia會出現(xiàn)各種詭異問題
qtopia出現(xiàn)問題時,很多情況下,不是大問題,而是環(huán)境變量的問題,如設(shè)置mouse,導(dǎo)致串口不能用,設(shè)置keyboard,導(dǎo)致鼠標(biāo)不好用等等
22.qtopia關(guān)鍵代碼位置
qtopia-2.2.0基本就在qtopia_root/qt2/src/kernel/Qgfxraster_qws.cpp附近
23.去掉linux開機(jī)logo上的光標(biāo)
   在內(nèi)核的當(dāng)前目錄進(jìn)入到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停止和開啟圖形界面服務(wù)

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

/etc/init.d/gdm start開啟圖形服務(wù)

25.改變uboot和linux內(nèi)核內(nèi)容輸出串口

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下,兩個內(nèi)容需要做:

第一是添加相應(yīng)串口設(shè)備,第二是注冊相應(yīng)串口為串口控制臺,我的修改如下:

 /* 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); //新加的

內(nèi)核配置中,稍有修改,調(diào)整早期輸出到相應(yīng)串口選項即可,此選項一般在相應(yīng)的板子類型下,我的修改成uart0

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

26.tar 命令小結(jié)

  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 命令小結(jié)

cp source target

- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經(jīng)存在的目標(biāo)文件而不提示。
- i 和f選項相反,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)?;卮饄時目標(biāo)文件將被覆蓋,是交互式拷貝。
- p 此時cp除復(fù)制源文件的內(nèi)容外,還將把其修改時間和訪問權(quán)限也復(fù)制到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時目標(biāo)文件必須為一個目錄名。
- 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不行,因為沒有設(shè)置域名解析服務(wù)器,解決辦法也很簡單:

touch /etc/resolv.conf

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

nameserver 202.101.172.35
nameserver 202.101.172.47 

30.qtopia-2.2.0編譯x86版本

進(jìn)入源碼根目錄后,簡單的:

./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 &

如果,

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

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

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

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

習(xí)慣上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有關(guān),shell的FD通常為10個,即 0~9;
b、 常用FD有3個,為0(stdin,標(biāo)準(zhǔn)輸入)、1(stdout,標(biāo)準(zhǔn)輸出)、2(stderr,標(biāo)準(zhǔn)錯誤輸出),默認(rèn)與keyboard、monitor、monitor有關(guān);
c、 用 < 來改變讀進(jìn)的數(shù)據(jù)信道(stdin),使之從指定的檔案讀進(jìn);
d、 用 > 來改變送出的數(shù)據(jù)信道(stdout, stderr),使之輸出到指定的檔案;
e、 0 是 < 的默認(rèn)值,因此 < 與 0<是一樣的;同理,> 與 1> 是一樣的;
f、 在IO重定向 中,stdout 與 stderr 的管道會先準(zhǔn)備好,才會從 stdin 讀進(jìn)資料;
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.遠(yuǎn)程

本地一般是xterm,遠(yuǎn)程則是secureCRT之類

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

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

當(dāng)然,也可修改/etc/vim/vimrc中的相關(guān)選項

 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默認(rèn)沒有開啟unicode支持,開啟即可,qtopia的unifont支持中文,詳細(xì)顯示中文和中文化參照地址:http://blog.csdn.net/linucos/archive/2010/03/24/5413257.aspx

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

39.qtopia中文輸入法

MurphyPinyin輸入法,移植相當(dāng)簡單,不再贅述

40.arm linux LCD不能正常顯示

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

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

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

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

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

41.c程序加printf調(diào)試方法

#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設(shè)置成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內(nèi)核支持yaffs2

需要給內(nèi)核打個補(bǔ)?。?.6.30),之后內(nèi)核配置的時候選擇下,制作工具分為大page和小page區(qū)別,制作即可

46.linux內(nèi)核解壓后停止

出現(xiàn):

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

停止

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

47.linux驅(qū)動架構(gòu)簡單跟蹤

linux驅(qū)動架構(gòu),主要是分層,便于管理咯:比如聲音的驅(qū)動,先要添加設(shè)備,之后再初始化驅(qū)動,添加platform設(shè)備便于管理,真正的工作在驅(qū)動中做
module_init(at91uda1341_init);
上邊的init函數(shù)中調(diào)用了2個關(guān)鍵函數(shù):
at91_add_device_at91uda1341 和 platform_driver_register
這個其實是注冊了設(shè)備的,注冊的設(shè)備過程中,最主要的也是初始化了需要用管腳,當(dāng)然放到驅(qū)動初始化中也行,為什么要放在這里呢?才像是告訴后來的設(shè)備,這個管腳已經(jīng)使用了,如果檢測到被用了,干脆設(shè)備都不要注冊了~因為沖突了~module_exit指定的函數(shù)會自動調(diào)用的,放在特殊的段里~
還有個關(guān)鍵函數(shù)是 snd_at91uda1341_probe();
這個是初始化了函數(shù)了,除了管腳外,所有的初始化都放在probe里了~probe什么時候調(diào)用呢~?
蹤影是:
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ù)被調(diào)用了的~
綜上,也就是module_exit的時候,設(shè)備也添加了,驅(qū)動也初始化了~

總之呢,一個注冊設(shè)備分配管腳,一個初始化驅(qū)動~

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

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

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

 #define CONFIG_ENV_OFFSET    0x60000

即是相對存儲設(shè)備的偏移

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

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

51.如何去掉make menuconfig中的依賴關(guān)系

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

config TOUCHSCREEN_AD7877
 tristate "AD7877 based touchscreens"
 depends on SPI_MASTER

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

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

驅(qū)動硬件,需要想core層注冊輸入設(shè)備,所有的信息通過標(biāo)準(zhǔn)消息通知core

--2--core

處理核心,與驅(qū)動關(guān)系不大

--3--event handle

事件處理,針對不同的設(shè)備有不同的時間,具體見driver/input/evdev.c,設(shè)備文件也是在此建立的,現(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.內(nèi)建環(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切換啟動,復(fù)制粘貼不放心,敲來敲去麻煩,可以使用下面的方法,看例子即知道怎么做

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設(shè)置是這樣的

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能夠?qū)崿F(xiàn)自動登錄的,但是不能設(shè)置波特率,但是getty可以的,但是換做getty的話,自動登錄要經(jīng)過一個腳本,

/bin/autologin內(nèi)容如下

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

以上設(shè)置可以實現(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內(nèi)核支持的架構(gòu)

根目錄下 ls arch/arm/configs/

61. ubuntu備份好工具

remastersys

62.ubuntu設(shè)置終端語言

export LANGUAGE=en_US.UTF-8

export LANG=en_US.UTF-8

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多