ubuntu12.04 内核编译,ubuntu20.04内核版本
其实ubuntu12.04 内核编译的问题并不复杂,但是又很多的朋友都不太了解ubuntu20.04内核版本,因此呢,今天小编就来为大家分享ubuntu12.04 内核编译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
如何配置编译在mini2440开发板上运行的linux内核
参考:
系统ubuntu12.04(非虚拟机下)
mini2440
CPU型号: S3C2440AL-40
Nanflash型号:K9F1G08
Norflash型号:SST39VF1601
LCD:统宝 240 x 320
$:普通账户
#:root账户
*当shell下输入路径时可使用tab键自动补全
(一)建立交叉编译环境
1.将mini2440光盘中的linux文件夹拷贝到/home/lianghuiyong并改名为Linux_share
(其中两个文档为我后面添加进去的)
2.Ctrl+Alt+T打开shell
3.$ su- root(切换root权限)
4.# cd/home/lianghuiyong/Linux_share
5.解压安装arm-linux-gcc编辑器
# tar xvzf arm-linux-gcc-4.4.3.tar.gz–C///注意:C后面有个空格
执行该命令,将把 arm-linux-gcc安装到/usr/loca/arm/4.4.3目录。这句来自mini2440用户手册,我发现其实是安装到/opt/FriendlyARM/toolchain/4.4.3目录
6.# vim/root/.bashrc
7.在最后一行添加:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin//opt/FriendlyARM/toolschain/4.4.3/bin为arm-linux-gcc环境变量
:wq保存退出。
# source~/.bashrc
8.# sudo gedit/etc/environment
games后面添加标记部分
9.# arm-linux-gcc-v//gcc后面有空格
测试hello.c(这是在安装了第二部分的linux示例程序才有examples/hello目录)
# cd/opt/FriendlyARM/mini2440/examples/hello
# arm-linux-gcc-o hello hello.c
#./hello
(二)安装源代码及其他工具
创建工作目录(以下都为root环境下):
# mkdir-p/opt/FriendlyARM/mini2440
1>>解压安装linux内核源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/linux-2.6.32.2-mini2440-20100106.tar.gz
2>>解压安装嵌入式图形系统qtopia源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/x86-qtopia.tgz
# tar xvzf/home/lianghuiyong/Linux_share/arm-qtopia.tgz
3>>解压安装嵌入式图形系统 QtE-4.6.1源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/arm-qte-4.6.3-20100802.tar.gz
4>>解压安装busybox源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/busybox-1.13.3-mini2440.tgz
5>>解压安装 Linux示例程序
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/examples-20100108.tgz
6>>解压安装 vboot源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/vboot-src-20100106.tar.gz
7>>解压安装 bootloader源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/bootloader.tgz
8>>解压创建目标文件系统
# cd/opt/FriendlyARM/mini2440
#tar xvzf/home/lianghuiyong/Linux_share/rootfs_qtopia_qt4-20100816.tar.gz
9>>解压安装目标文件系统映象制作工具 mkyaffs2image
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/mkyaffs2image.tgz–C/
10>>解压安装LogoMaker
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/logomaker.tgz–C/
(三)定制linux内核及制作文件系统
config_mini2440_x35–适用于 Sony 3.5” LCD的内核配置文件
config_mini2440_t35–适用于统宝 3.5” LCD的内核配置文件
config_mini2440_l80–适用于 Sharp 8” LCD(或兼容)的内核配置文件
config_mini2440_n35–适用于 NEC3.5” LCD的内核配置文件
config_mini2440_h43–适用于 4.3” LCD的内核配置文件
config_mini2440_a70–适用于群创 7” LCD的内核配置文件
config_mini2440_vga1024x768–适用于 VGA显示输出(分辨率 1024x768)模块的内核
配置文件
1.配置缺省文件config_t35(统宝240x320)
# cd/opt/FriendlyARM/mini2440/linux-2.6.32.2
# cp config_mini2440_t35.config
# make menuconfig
出现界面
不做更改,exit退出。这样做是为了生成相应配置(统宝240x320)的头文件。
2.编译内核
在/opt/FriendlyARM/mini2440/linux-2.6.32.2目录下编译内核
#make zImage
编译结束后,会在 arch/arm/boot目录下生成 linux内核映象文件:zImage(zImage可下载到开发板测试)
3.定制linux内核(根据用户手册来走一遍)
# cd/opt/FriendlyARM/mini2440/linux-2.6.32.2
# make menuconfig
出现配置选项:
3.1配置cpu
主菜单-->System--> Type S3C2400 Machines--> FriendlyARM Mini2440 development board
3.2配置lcd驱动
主菜单-->Device Drivers-->Graphics support-->Support for frame buffer devices-->Backlight-->LCD select-->3.5 inch 240x320 Toppoly LCD
3.3配置触摸屏
主菜单-->Device Drivers-->Input device support-->Touchscreens-->Samsung s3c24410 touchscreen input driver
3.4配置usb鼠标和键盘
主菜单-->Device Drivers-->hid devices-->USB Human interface Device
3.5配置优盘
主菜单-->Device Drivers-->SCSI device support--> SCSI disk
3.6配置万能驱动USB摄像头
主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters-->V4L USB devices-->GSPCA based webcams-->ALi USB m 5602 Camera Driver
3.7配置CMOS摄像头驱动
主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters-->OV9650 on the s3c2440 driver
3.8配置网卡驱动
主菜单-->Netwoking support-->Networking options-->选择Unix和TCP/IP
主菜单-->Device Drivers-->Network device support-->Ethernet(10 or 100Mbit)-->
选择<*> Generic Media Independent Interface device support
<*> DM9000 support
3.9配置USB无线网卡驱动
主菜单-->Netwoking support-->wireless-->IEEE 802.11
主菜单-->Device Drivers-->Netwoking device support-->wireless LAN-->Wireless LAN(IEEE 802.11)-->Ralink driver support-->
3.10配置音频驱动
主菜单-->Device Drivers-->Sound card supprt-->OSS Mixer API-->ALSA for Soc audio support-->SoC Audio for the samsung S3Cxxxx Chips
3.11配置SD/MMC卡驱动
主菜单-->Device Drivers-->MMC/SD/SDIO card-->samsung S3C SD/MMC card
3.12配置看门狗驱动支持
主菜单-->Device Drivers-->Watchdog Timer-->s3c2440 Watchdog
3.13配置LED驱动
主菜单-->Device Drivers-->Character devices-->LED support for Mini2440
3.14配置按键驱动
主菜单-->Device Drivers-->Character devices-->Buttons driver
3.15配置PWM控制蜂鸣器驱动
主菜单-->Device Drivers-->Character devices-->buzzer driver for
3.16配置AD转换驱动
主菜单-->Device Drivers-->Character devices-->ADC driver for
3.17配置串口驱动
主菜单-->Device Drivers-->Character devices-->Serial drivers-->samsung S3C2440/S3C2442
3.18如何配置RTC实时时钟驱动
主菜单-->Device Drivers-->Real Time Clock-->samsung S3C series SoC RTC
3.19配置I2C-EEPROM驱动支持
主菜单-->Device Drivers-->I2C support-->I2C Hardware Bus support-->S3C2410 I2C Driver
3.20配置yaff2s文件系统的支持
主菜单-->Device Drivers-->MTD-->NAND Device Support-->NAND FLASH Support
主菜单-->File systems-->Miscellaneous filesystems-->YAFFS2 file system support
3.21配置EXT2/VFAT/ NFS等文件系统
主菜单-->File systems-->Network File Systems-->root file system on NFS
为了支持FAT32文件系统.
主菜单-->File systems-->DOS/FAT/NT Filesystems-->VFAT(windows-95) fs support
关于mini2440 linux内核裁剪到此为止,退出后有一个是否保存提示,选择保存!
3.22制作Linux logo
本来想使用Logomaker,结果生成的图片都是无数据的,这可能和系统内一些参数有关
使用命令方式制作logo:
在图片(open_show.png)目录下
# pngtopnm open_show.png> temp.ppm
# ppmquant 224 temp.ppm>temp2.ppm
# pnmnoraw temp2.ppm> logo.ppm
将目录下生成的logo.ppm改成linux_logo_clut224.ppm,替代linux2.6.32.2/drivers/video/logo目录下的同名文件
Ubuntu 12.04系统boot空间不足删除旧内核的方法
在Ubuntu 12.04系统中,遇到"/boot"空间不足的问题时,可能是因为旧内核占据了大量的空间。要解决这个问题,可以尝试清理旧内核。下面的步骤将引导你完成这一过程。
问题出现时,若系统提示"/boot"空间不足,且发现旧内核占用了大量空间,此时,需要清理这些旧内核以释放空间。
首先,查看系统中存在多少内核。
执行命令 sudo dpkg--get-selections| grep linux-image,将显示所有已安装的内核。假设已删除四个旧内核,显示结果将包括“deinstall”。
接下来,执行命令 sudo apt-get remove linux-image-3.2.0-31-generic-pae,以卸载指定的旧内核。替换“3.2.0-31-generic-pae”为实际需要卸载的内核版本。
在卸载旧内核后,重新查看"/boot"分区的可用空间,应发现空间得到了释放。此时,可以继续进行系统更新。
完成上述步骤后,若"/boot"空间仍不足,则可能需排查其他导致空间不足的原因。
ubuntu下安装oracle缺少很多包怎么解决
Ubuntu12.04安装Oracle10g全过程(完美)及问题解决办法
PS:正常情况下,完美无错。。如果遇到问题,也有解决办法1.安装前准备工作
1.1到oracle官网下载适合自己电脑的oracle软件包;我的是:Oracle Database 10gRelease 2(10.2.0.1.0)Enterprise/Standard Edition for Linux x86下的:10201_database_linux32.zip地址:更新ubuntu
# apt-get update
# apt-get upgrade
1.3安装额外的javaJDK
可在【Ubuntu软件中心】搜OPENjdk,安装OpenJDK完成后path路径自动设置好了1.4安装缺少的包并降低GCC版本
apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 alienapt-get install ksh libtool libstdc++5 build-essential compat-libstdc++卸载gcc-4.6,安装gcc-4.4版本
apt-get remove gcc-4.6
apt-get install gcc-4.4
1.5创建oracle用户
登录到root用户下操作:
1.5.1修改shell
ls-l/bin/sh如果是dash修改为bash
rm/bin/sh
ln-s/bin/bash/bin/sh
1.5.2创建用户和组及oracle安装路径
addgroup oinstall
addgroup dba
addgroup nobody
usermod-g nobody nobody
adduser oracle
usermod-g oinstall-G dba oracle
id oracle
id nobody
mkdir-p/opt/oracle
mkdir-p/opt/oradata
chown-R oracle:dba/opt/ora*
chmod-R 775/opt/ora*
1.5.3创建欺骗版本声明
vi/etc/redhat-release
然后向其中加入 Red Hat Linux release 3.1
1.5.4建立链接
ln-s/usr/bin/gcc-4.4/usr/bin/gcc
ln-s/lib/i386-linux-gnu/libgcc_s.so.1/lib/libgcc.s.so.1ln-s/usr/bin/awk/bin/awk
ln-s/usr/bin/rpm/bin/rpm
ln-s/usr/bin/basename/bin/basename
mkdir/etc/rc.d
ln-s/etc/rc0.d/etc/rc.d/rc0.d
ln-s/etc/rc1.d/etc/rc.d/rc1.d
ln-s/etc/rc2.d/etc/rc.d/rc2.d
ln-s/etc/rc3.d/etc/rc.d/rc3.d
ln-s/etc/rc4.d/etc/rc.d/rc4.d
ln-s/etc/rc5.d/etc/rc.d/rc5.d
ln-s/etc/rc6.d/etc/rc.d/rc6.d
ln-s/etc/init.d/etc/rc.d/init.d
1.5.5添加用户到sudoer列表中
vi/etc/sudoers
在“ root ALL=(ALL:ALL) ALL”下一行,添加:
oracle ALL=(ALL:ALL) ALL
1.5.6修改内核参数和系统变量
A修改/etc/sysctl.conf文件(可以不用修改)
gedit/etc/sysctl.conf
添加如下内容:
kernel.shmall= 2097152
kernel.shmmax= 2147483648
kernel.shmmni= 4096
kernel.sem= 25 32000 100 128
fs.file-max= 65536
net.ipv4.ip_local_port_range= 1024 65000B修改/etc/security/limits.conf(可以不用修改)gedit/etc/security/limits.conf
添加如下内容:
* soft nproc 2407
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
说明:不要忘了“*”号,可以换成oracle
C修改ubuntu的oracle用户的环境变量
修改/home/oracle/.profile和/etc/profile两个文件vi/home/oracle/.profile
vi/etc/profile
添加如下内容:
#oracle_path start
export ORACLE_HOME=/opt/oracle
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin
#oracle_path end
1.5.7使参数生效
重启系统或终端执行命令 sysctl-p
1.5.8将下载好的oracle安装文件mv到/home/oracle下,并解压。注销root用户,登录oracle用户2.开始安装oracle
2.1打开终端,cd到/home/oracle/database的oracle解压文件下,执行下面这条命令./runInstaller-jreLoc/usr/lib/jvm/java-6-openjdk-i386/jrejava-version是java的安装版本,这一句是为了在图像化装oracle是不会出现乱码或者方框然后就向windows下安装一样的图像化安装界面。
不行的话,使用英文安装界面
export LANG=ENGLISTH
./runInstaller
2.2按照下面的图像步骤操作
执行到配置配置脚本时
切换到root下,在终端中执行脚本
/home/oracle/oralnventory/orainstRoot.sh
/opt/ora10/root.sh
2.4出现oracle database 10g安装完成时,记下两个URL。
2.5安装数据库
在终端中执行如下命令:
$dbca//如果出现中文乱码,执行下面命令$cd/opt/ora10/bin
$gedit dbca
在dbca中找到“JRE_DIR=/opt/ora10/jdk/jre”,替换为JRE_DIR=/usr/lib/jvm/java-1.6.0-openjdk/jre,然后保存退出$dbca//正常显示了
2.6按照下面步骤执行
但是:要将数据库名字及SID都要写上orcl
一直到安装完成。
3.启动oracle
在“终端”以oracle身份运行
启动TNS监听器:$ORACLE_HOME/bin/lsnrctl start($ORACLE_HOME,就是oracle的安装目录:/opt/ora10.直接cd,进入oracle的安装目录,到bin文件夹下,$lsnrctl start,也行)。
关闭TNS:$ORACLE_HOME/bin/lsnrctl stop
启动sqlplus:$ORACLE_HOME/bin/sqlplus/nolog关闭sqlplus:SQL> exit
4.为了能够像windows下一样能够使用上下键翻动命令,还需要安装rlwrap包:
sudo apt-get install rlwrap
然后修改oracle用户的~/.bashrc文件和/etc/profile文件,在其最后添加两行:
这样上下左右键就可以使用了。
最后来解决oracle中文字符集的问题。不出意外的话,启动oracle会发现所有的中文都是“?”,要么就是乱码,这其实是服务器端字符集和客户端字符集不一致造成的。
解决方法为:DBA身份进入sqlplus,做查询
SQL>select userenv(‘language’) from dual;将查询结果复制,在/etc/bash.bashrc文件中再加一行:export NLS_LANG=”查询结果”,重新登录问题解决。例如:我的查询结果为SIMPLIFIED CHINESE_CHINA.AL32UTF8,则新加一行为export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"。
但是有时候这个方法不一定奏效,你可以将
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"分别写到两个文件中尝试一下,但是两个文件写的一定要一致。
5.如果有问题可按下列过程处理:
5.1
问题:调用makefile'../sqlplus/lib/ins_sqlplus.mk'的目标'install'时出错。请参阅'/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log'以了解详细信息。
解决办法:$ORACLE_HOME/sqlplus/lib/env_sqlplus.mk添加一行:EXPDLIBS=-lclntsh,然后点击“重试”按钮, ok.
其实安装 gcc-4.4以后没有这个问题。
5.2
问题:调用makefile'../sysman/lib/ins_sysman.mk'的目标'agent nmo nmb'时出错。请参阅'../oraInventory/logs/installActions2011-12-06_11-03-18AM.log'以了解详细信息。
分析:后面遇到的错误其实本质上是一个问题,主要是gcc的版本高了,oracle10g的gcc是3.4左右的版本,但是ubuntu的开发速度早就用了4.0以上版本,而且你还无法apt安装低版本解决办法:卸载gcc-4.6,安装gcc-4.4版本
apt-get remove gcc-4.6
apt-get install gcc-4.4
5.3
调用makefile'../network/lib/ins_net_server.mk'的目标'install'时出错。请参阅'../oraInventory/logs/installActions2011-12-06_11-03-18AM.log'以了解详细信息。
分析:我在网上找到了一篇类似的文档,参见(点击打开链接),但是我手工编译还是有问题,而且在oracle10g中并不是他所提到的-lons参数问题。
还是gcc版本问题,我曾尝试过安装低版本的gcc,但是一开始编译就报错,所以放弃了,如果有人能成功降低版本环境,相信一定能解决所有错误问题,这也是为什么ubuntu 8能很自然成功安装的一个解释。
方法:目前我还没有方法,按照其.mk文件的说明,这个东西好像是数据库链接断裂时候重新链接用的解决办法:卸载gcc-4.6,安装gcc-4.4版本
在/usr/bin下做了/usr/bin/gcc-4.4的软链接cd/usr/bin
ln-s/usr/bin/gcc-4.4/usr/bin/gcc
5.4
调用makefile'../rdbms/lib/ins_rdbms.mk'的目标'all_no_orcl ihsodbc'时出错。请参阅'../oraInventory/logs/installActions2011-12-06_11-07-36-AM.log'以了解详细信息。
分析:我们看一下log文件
信息: Generating BASE ORASDK library...
信息: Creating/opt/ora10/lib/liborasdkbase.so.10.2信息: gcc:错误:/lib/libgcc_s.so.1:没有那个文件或目录gcc:错误:/usr/lib/libstdc++.so.5:没有那个文件或目录我们看到终于是那个非常多的错误了,其实还是gcc的问题,重新下载了libgcc_s.so.1,并且重新做了stdc++5的链接,但是问题还是更多,因为只做软链接和下载一个动态库是没法解决所有问题的。
解决办法:安装compat-libstdc++-33_3.2.3-48.3_i386.deb,重试。。
在一个libgcc_s.so.1软链接
cd/lib
ln-s/lib/i386-linux-gnu/libgcc_s.so.1 libgcc.s.so.16.开机启动
6.1 root下面修改:vi/etc/oratab
orc1:/opt/oracle/product/10.2.0/db_1:Y
将N该为Y
6.2 oracle下面修改:
cd$ORACLE_HOME/bin
vi dbstart
找到 ORACLE_HOME_LISTNER这行,修改成:
ORACLE_HOME_LISTNER=/opt/oracle/product/10.2.0/db_1或者直接修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME
测试运行 dbshut, dbstart看能否启动oracle服务及listener服务ps-efw| grep ora_
lsnrctl status
ps-efw| grep LISTEN| grep-v grep
6.3 root下创建文件:
vi/etc/rc.d/init.d/oracle10
#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for Oracle Databases#/etc/init.d/oracle10
export ORACLE_SID=ym
# export ORACLE_HOME_LISTNER=/data/files/oracle/10g/bin#oracle安装目录
export ORACLE_HOME=/data/files/oracle/10gexport PATH=$PATH:$ORACLE_HOME/bin
case"$1" in
start)
su oracle-c$ORACLE_HOME/bin/dbstart#启动服务su oracle-c$ORACLE_HOME/bin/lsnrctl start#启动监听touch/var/lock/oracle
echo"OK"
;;
stop)
echo-n"Shutdown Oracle:"
su oracle-c$ORACLE_HOME/bin/dbshut#启关闭服务su oracle-c$ORACLE_HOME/bin/lsnrctl stop#关闭监听rm-f/var/lock/oracle
echo"OK"
;;
*)
echo"Usage:'basename$0' start|stop"
exit 1
esac
exit 0
然后
chmod 775 oracle10
chkconfig--add oracle10
chkconfig--list oracle10