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

阅读剩余
THE END