Linux 学习笔记(未整理)

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

时间: 2024-10-29 03:41:07

Linux 学习笔记(未整理)的相关文章

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器. 2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim 3,学习vim的重要性 (1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在 (2)很多软件的编辑接口都会主动调用vi (3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确

Linux学习笔记——vmware plarer中安装ubuntu

1.前言 学习了很长时间ubuntu,在旧笔记中安装过lubuntu,也使用过他人安装好的ubuntu虚拟机(contiki2.6和contiki2.7).熟悉了ubuntu之后,决定自己尝试通过vmware player安装ubuntu. [1]vmware plaryer是免费软件,不存在破解问题.如果用来学习ubuntu完全足够了. [2]建议在虚拟机种学习ubuntu,等完全熟练之后再摆脱windows.ubuntu现在还没有有道笔记,QQ等工具,总感觉网上世界少了点什么. [3]在虚拟

Linux学习笔记之文件管理,用户管理

学而不用,总是忘记,今天又整理一下,记在这里,方便以后自己查看 常用操作命令 目录常用操作命令: pwd, cd, ls, mkdir, rmdir, tree. 文件常用操作命令: find,locate, whereis, which, touch, file, cp, rm,mv,ln,cat,tac,head,tail,more,less,grep,wc. 用户及用户组管理 Linux系统中用户分为3类:root用户,普通用户和虚拟用户.其中虚拟用户是不具备登录系统的能力,但却是系统运行

[Linux] 学习笔记之安装学习环境(sshd, lrzsz)

紧接前一篇,在VMWare安装完Linux,这个时候我们要使用远程工具连接到虚拟机上去了,以前一直使用Putty,后来到新公司之后,推荐使用SecureCRT,使用之后,觉得效果不错,但是每次连接都失败,linux新手伤不起,在网上搜啊搜,终于找到解决办法.   搜索了很多资料之后,发现是由于我未在Linux上安装ssh服务导致无法使用SecureCRT连接. 1. 可以使用ssh localhost对此进行测试,具体使用如下: 2. 使用apt-get或者yum安装ssh服务,具体哪种操作系统

linux学习笔记二:linux文件系统

各大linux的版本都遵循着FHS(Filesystem Hierarchy Standard)文件系统目录标准,是一个树形结构的组织文件.在此简要记录各目录. linux下所有文件都处在/文件下. 树形结构图: /boot:  系统启动相关的文件 主要文件 1.vmliunx:内核    2.initramfs:磁盘映像文件   3.grub(bootloader) /dev:设备文件 块设备:随机访问设备. 字符设备:线性设备,顺序访问.按字符为单位.键盘.鼠标. 设备号:主设备号(majo

linux学习笔记一:获取命令帮助

linux命令超多,忘记命令的使用方式.格式是很平常的事 囧.能够使用系统自带的帮助文件获取到相关的信息是学习linux的必备基本功! 下面记录几个常用的帮助命令,只为加深本菜的记忆,有不对的地方请看到这篇博文的大大加以指导,感激不尽! 简要介绍下命令,命令分为两大种类. 一种为shell自带的一些基础命令,称为内部命令.该类命令集成在shell内部,执行速度比外部命令快. 还有一种称为外部命令,该类命令是额外安装的,开机不自动加载,在需要使用时通过路径查找(printenv中的PATH项),加

【Linux学习笔记】第5章 VIM工具

5.1vim介绍vim是vi的升级版,带有颜色显示,先安装包yum install -y vim-enhancedvim分为三种模式:一般模式.编辑模式.命令模式. 5.2vim颜色显示和移动光标相同的文件信息在不同目录下显示颜色会有差异.相同内容,不同文件名,显示颜色也会有差异.vim的配置文件/etc/vimrc. 5.3vim一般模式下移动光标一般模式下:h或向左的方向键 光标向左移动一个字符l或者向右的方向键 或者空格键 光标向右移动一个字符Ctrl+f或PageUp键 屏幕向前移动一页

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai