標籤:
redhat 5.4中文顯示亂碼問題
安裝
1、fonts-chinese-3.02-9.6.el5.noarch.rpm. 如果無法安裝,則加個--force
2、fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm
多數人到了這裡就沒有做其它操作了,導致仍然無法正確顯示中文。
3、cd /usr/share/fonts/
4、fc-cache -fv #
以上的兩個步驟,才是成功完成的關鍵!所以這裡要特別注意!重新啟動系統即可
建立交叉編譯環境
在Linux平台下,要為開發板編譯核心,圖形介面Qtopia/Qt4,bootloader,還有其他一些應用程式,均需要交叉編譯工具鏈,我們使用的是arm-linux-gcc-4.5.1,它預設採用armv6指令集,支援硬浮點運算,下面是安裝它的詳細步驟。
Step1:將光碟片Linux目錄中的arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz複製到Fedora9某個目錄下如tmp/,然後進入到該目錄,執行解壓命令:
#cd /tmp
#tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz –C /
注意:C後面有個空格,並且C是大寫的,它是英文單詞“Change”的第一個字母,在此是改變目錄的意思。
執行該命令,將把arm-linux-gcc安裝到/opt/FriendlyARM/toolschain/4.5.1目錄。
Step2:把編譯器路徑加入系統內容變數,運行命令#gedit /root/.bashrc
編輯/root/.bashrc 檔案,注意“bashrc”前面有一個“.”,修改最後一行為 export PATH=$PATH: /opt/FriendlyARM/toolschain/4.5.1/bin,注意路徑一定要寫對,否則將不會有效。儲存退出。如果/root/.bashrc裡面輸入有誤,後面會出現超級管理員權限下的部分命令不能使用。
重新登入系統(不必重啟機器,開始->logout 即可),使以上設定生效,在命令列輸入arm-linux-gcc –v,會出現GCC版本資訊,這說明交叉編譯環境已經成功安裝。
VMware共用資料夾,只能拷出,不能拷入
[[email protected] ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
修改後重啟就OK
REDHAT安裝時出現:This system is not registered with RHN.
紅帽中出現This system is not registered with RHN這個的原因是因為紅帽中沒有註冊RHN。解決辦法:(假定你已安裝yum,且網路暢通)更改yum的源,即更換/etc/yum.repos.d /rhel-debuginfo.repo 這個檔案。進入/etc/yum.repos.d/目錄,終端中輸入wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo即可在此目錄下得到CentOS- Base.repo檔案,這是centos的源檔案,只需將其重新命名為rhel-debuginfo.repo即可,以前的檔案做個備份。
最簡單的驅動程式hello
Mini6410_hello_module.c
#include <linux/kernel.h> #include <linux/module.h> static int __init mini6410_hello_module_init(void) { printk("Hello, Mini6410 module is installed !\n"); return 0; }static void __exit mini6410_hello_module_cleanup(void) { printk("Good-bye, Mini6410 module was removed!\n"); } module_init(mini6410_hello_module_init); module_exit(mini6410_hello_module_cleanup); MODULE_LICENSE("GPL");
PC環境:win7+VMwave10+redhat5.1
用mini6410開發板,廠家提供的原代碼和編譯器。
(1)把Hello,Module 加入核心代碼樹,並編譯
一般編譯2.6版本的驅動模組需要把驅動代碼加入核心代碼樹,並做相應的配置,如下步驟( 注意:實際上以下步驟均已經做好,你只需要開啟檢查一下直接編譯就可以了) :
Step1:編輯設定檔Kconfig,加入驅動選項,使之在make menuconfig的時候出現 開啟linux-2.6.38/drivers/char/Kconfig 檔案,添加:
儲存退出,這時在linux-2.6.38 目錄位置運行一下make menuconfig就可以在Device Drivers Æ Character devices 菜單中看到剛才所添加的選項了,按下空格鍵將會選擇為<M>,此意為要把該選項編譯為模組方式;再按下空格會變為<*> ,意為要把該選項編譯到核心中,在此我們選擇<M>,,如果沒有出現,請檢查你是否已經裝載了預設的核心設定檔。(M:就是做成模組,動態裝入 *:就是直接編譯到核心中,啟動時裝入)
Step2:通過上一步,我們雖然可以在配置核心的時候進行選擇,但實際上此時執行編譯核心還是不能把mini6410_hello_module.c 編譯進去的,還需要在Makefile中把核心配置
選項和真正的原始碼聯絡起來,開啟 linux-2.6.38/drivers/char/Makefile ,添加並儲存退出:
Step3:這時回到 linux-2.6.38 原始碼根目錄位置,執行 make modules ,就可以產生我們所需要的核心模組檔案mini6410_hello_module.ko了,注意:執行make modules之前,必須先執行make zImage,只需一次就可以了。
至此,我們已經完成了模組驅動的編譯。
在此使用ftp 命令把編譯出的mini6410_hello_module.ko下載到板子中,並把它移動到/lib/modules/2.6.38-FriendlyARM 目錄然後在板子中現在執行
#modprobe mini6410_hello_module
可以看到該模組已經被裝載了( 注意:使用 modprobe命令載入模組不需要加“ko”尾綴)
注意:兩種載入方式insmod和modprobe的區別
1、insmod一次只能載入特定的一個裝置驅動,且需要驅動的具體地址。寫法為:
insmod drv.ko
2. modprobe則可以一次將有依賴關係的驅動全部載入到核心。不加驅動的具體地址,但需要在安裝檔案系統時是按照make modues_install的方式安裝驅動模組的。驅動被安裝在/lib/modules/$(uname -r)/...下。寫法為:
modprob drv
再執行以下命令,可以看到該模組被卸載
#rmmod mini6410_hello_module
注意:要能夠正常卸載模組,必須把模組放入開發板的/lib/modules/2.6.38-FriendlyARM 目錄
另外需要注意的是:因為我們的核心有時會升級更新,如果核心版本已經改變,請依照具體的核心版本重建立立一個模組存放目錄,在此為/lib/modules/2.6.38-FriendlyARM
Linux 學習筆記(未整理)