精华内容
下载资源
问答
  • Linux系统的服务器上使用Memtester进行内存压力测试 Memtester主要用于捕获内存错误,其测试的主要项目有随机值、异或比较、减法、乘法、除法、与或运算等,通过给定测试内存的大小和次数,可以对系统现有的内存...

    reference: https://www.huaweicloud.com/kunpeng/software/memtester.html

    内存正确性测试工具 memtester

    在Linux系统的服务器上使用Memtester进行内存压力测试

    Memtester主要用于捕获内存错误,其测试的主要项目有随机值、异或比较、减法、乘法、除法、与或运算等,通过给定测试内存的大小和次数,可以对系统现有的内存进行测试。

    memtester下载

    一、在线安装

    1.      配置编译环境

    安装wget工具。

    yum install wget -y

    2.      获取源码

    获取“memtester-4.2.2”源码包。

    cd /usr/local/src

    wget https://codeload.github.com/jnavila/memtester/tar.gz/v4.2.2

    3.      编译和安装

    1)     解压软件包。

    cd /usr/local/src

    tar -zxvf v4.2.2

    2)     进入Memtester的安装目录。

    cd memtester-4.2.2/

    3)     修改“extra-libs.sh”的操作权限。

    chmod 755 extra-libs.sh

    4)     安装Memtester。

    make && make install

    ----结束

    4.      运行和验证

    查询Memtester版本号。

    memtester --version

    回显信息如下,则表示Memtester安装成功。

    memtester version 4.2.2 (64-bit)
    Copyright (C) 2010 Charles Cazabon.
    Licensed under the GNU General Public License version 2 (only).
     
    pagesize is 65536
    pagesizemask is 0xffffffffffff0000
    memtester: invalid option -- '-'
     
    Usage: memtester [-p physaddrbase] <mem>[B|K|M|G] [loops]

    5. 运行 

     memtester  128G    100      

    二、离线安装

    1. memtester下载

    2.解压到/usr/local/src

    cp   memtester-v4.2.2  /usr/local/src

    tar -zxvf  memtester-v4.2.2

    3.进入Memtester的安装目录。

    cd memtester-4.2.2/

    4.修改“extra-libs.sh”的操作权限。

    chmod 755 extra-libs.sh

    5.安装memtester

    make && make install 

     

     

    展开全文
  • bootloader原理和开发——>kernel构建——>文件系统/根文件系统(filesystem/rootfs)APP ...一、配置交叉编译环境(可... 1、准备文件arm-cortex_a8-linux-gnueabi.tar.bz2  2、解压以上文件到当前用户目录下,
    bootloader原理和开发——>kernel构建——>文件系统/根文件系统(filesystem/rootfs)APP





    一、配置交叉编译环境(可参考嵌入式Linux移植与驱动开发cortexa8中交叉工具链的安装)
        1、准备文件arm-cortex_a8-linux-gnueabi.tar.bz2
        2、解压以上文件到当前用户目录下,如/home/linux/gcc
        3、进入超级用户模式sudo -s
        4、用vi打开/etc/bash.bashrc文件配置环境变量,在文件最后添加下面一句话
                export PATH=$PATH:/home/linux/gcc/arm-cortex_a8-linux/bin/
        5、使用source /etc/bash.bashrc更新下,以便虚拟机重启后该配置仍生效
        6、修改Makefile文件,用于arm架构下编译源文件
    二、开发板下载程序三种方法
        1、RS232
        2、Net Ethernet网线
        3、USB
    三、头文件、初始化文件、驱动等等,文件最好分门别类存放
    四、GCC过程&头文件及库的使用方法
        编译器环境arm-cortex_a8-linux-gnueabi-
        1、GCC
                gcc -E预处理 生成    .i
                gcc -c编译     生成    .s
                gcc -S汇编     生成    .o
                gcc -ld链接 ld可不写    生成可执行文件
        2、头文件用法
                自定义头文件在使用gcc时用参数    -I头文件路径
        3、静态库
                 arm-cortex_a8-linux-gnueabi-gcc -I$(INCLUDE) -c hello/hello.c -o hello/hello.o
                 arm-cortex_a8-linux-gnueabi-ar -rcs hello/libhello.a hello/hello.o
                 静态库,运行可执行文件不再需要
        4、动态库
                 arm-cortex_a8-linux-gnueabi-gcc -I$(INCLUDE) -c good/good.c -o good/good.o
                 arm-cortex_a8-linux-gnueabi-gcc -shared -fpic  -o good/libgood.so  good/good.o
                 动态库,运行可执行文件也需要指定库文件名以及库文件路径
        5、反汇编命令
                  arm-cortex_a8-linux-gnueabi-objdump -d test>test.dis
        6、生成bin文件
                  arm-cortex_a8-linux-gnueabi-objcopy -o binary test test.bin
        7、缩减test文件大小,丢弃一些不要的东西
                  arm-cortex_a8-linux-gnueabi-strip test
        8、打印出文件中的字符串,用法同7,strip改为string
    五、搭建下载环境(TFTP与NFS的配置可参考嵌入式linux操作系统的使用中网络配置一文)
        1. 开发板tftp使用
           1.1 开发板跟tftp服务器通过网线相连
       
           1.2 在开发板串口终端ping tftpserver  (ping 192.168.3.3)
           host 192.168.3.3 is alive
           
           需要设置环境变量(printev setenv)
           gatewayip=192.168.1.1
           ipaddr=192.168.3.5
           netmask=255.255.0.0
           serverip=192.168.3.3
     
             例:
             setenv ipaddr 192.168.3.5
             saveenv
       
           1.3 设置tftp 服务器端服务(主机)
       
           sudo /etc/init.d/tftpd-hpa restart
           tftpd-hpa stop/waiting
           tftpd-hpa start/running, process 11471
       
           安装tftp --> 配置服务器 (sudo vim /etc/default/tftpd-hpa)
           --> 本机测试(tftp localhost)-->开发板测试(tftp 20008000 zImage  go 20008000)
       
           1.4 设置nfs 服务 (主机)
          sudo /etc/init.d/nfs-kernel-server restart
          Exporting directories for NFS kernel daemon...                                                        
          * Starting NFS kernel daemon
             
            安装tftp服务--> 配置nfs (sudo vim /etc/exports)-->提供rootfs (tar xvf rootfs.tgz)
            ---> 本机测试(sudo mount -t nfs localhost:/source/rootfs ./temp)-->开发板测试
       
            开发板终端:
            setenv bootargs root=nfs nfsroot=192.168.3.3:/source/rootfs ip=192.168.3.5 init=/linuxrc             console=ttySAC0,115200
            saveenv
            1.5再次tftp 20008000 zImage---->go 20008000
            
            注:setenv bootcmd tftp 20008000 zImage\;go 20008000一键执行        run bootcmd

    六、将编译好的zImage及制作好的文件系统固化在nand flash中,zImage使用地址 100000-400000    nfs使用地址400000-800000
            1、使用命令nand erase 100000 300000        //插除nand flash中100000~400000地址的数据    300000为数据块size(大小)
            2、tftp 20008000 zImage        //zImage为编译好的bootleader程序
            3、使用命令nand write 20008000 100000 300000        //将zImage写入nand flash中100000~400000地址范围内
            
            4、使用命令nand erase 400000 400000
            5、tftp 20008000 rootfs.cramfs        //rootfs.cramfs为制作好的文件系统
            6、使用命令nand write 20008000 400000 400000

            7、改bootcmd——>setenv bootcmd nand read 20008000 100000 300000\;go 20008000
            8、改bootargs——>setenv bootargs root=/dev/mtdblock2 ip=192.168.1.111 init=/linuxrc console=ttySAC0,115200
    注:此外u-boot也是通过这个方法写入Nand Flash中。
    Nand Flash中内容的构成一般为:
    七、将写好的裸机代码xxx.bin烧写到nand中
            1、nand erase a00000 4000                    !!!要注意文件大小      4000的size 最多只能放16K的文件
            2、nand write 20008000 a00000 4000
            3、setenv bootcmd nand read 20008000 a00000 4000\;go 20008000    //将nand flash中a00000中4000size的数据读取到内存20008000的地址处,然后执行内存20008000地址开始的代码程序
    展开全文
  • 自制arm64架构Linux系统 1.自制操作系统 2.制作简单的Linux系统 3.Linux系统制作流程 4.qemu模拟运行arm64 5.qemu模拟运行aarch64 6.x86_64交叉编译arm64 linux内核

    Linux kernel + busybox自制arm64架构Linux系统


    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    相关阅读:
    1.linux内核之源码编译
    2.Linux kernel + busybox自制x86_64架构Linux系统

    相关问题:
    1.自制操作系统
    2.制作简单的Linux系统
    3.Linux系统制作流程
    4.qemu模拟运行arm64
    5.qemu模拟运行aarch64
    6.x86_64交叉编译arm64 linux内核

    环境:
    OS:Ubuntu 20.04
    aarch64-linux-gnu-gcc: gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu1)
    Linux Kernel: linux-5.4.50(2020-07-01 08:50)
    busybox: busybox-1.32.0(2020-06-26 19:30)
    qemu: qemu-system-aarch64 4.2.0

    前言

    自制arm64架构的Linux系统

    1.下载和编译Linux kernel

    1.1 下载Linux内核

    Linux内核官网:https://www.kernel.org/

    wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.50.tar.xz
    

    wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.4.50.tar.xz
    

    1.2 安装所需前置软件

    sudo apt-get install gcc-aarch64-linux-gnu libncurses5-dev build-essential flex bison bc  
    

    查找aarch64相关安装包:

    apt-cache search aarch64
    

    1.3 设置CPU架构(★)

    这里以arm64架构为例。常用的架构还有x86_64、mips(龙芯)、alpha(申威)

    # 设置CPU架构
    $ export ARCH=arm64
    
    # 设置交叉编译工具链前缀
    $ export CROSS_COMPILE=aarch64-linux-gnu-
    

    1.4 设置系统选项

    # 生成arm64的默认.config(根据ARCH生成,arch/arm64/configs/defconfig)
    $ make defconfig
    
    # 设置系统选项
    $ make menuconfig
    
     .config - Linux/arm64 5.4.50 Kernel Configuration
     ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
      ┌────────────────────────────────────────────── Linux/arm64 5.4.50 Kernel Configuration ───────────────────────────────────────────────┐
      │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are hotkeys.  Pressing  │  
      │  <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*]         │  
      │  built-in  [ ] excluded  <M> module  < > module capable                                                                              │  
      │                                                                                                                                      │  
      │ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
      │ │                                  *** Compiler: aarch64-linux-gnu-gcc (Ubuntu 9.3.0-10ubuntu1) 9.3.0 ***                          │ │  
      │ │                                  General setup  --->                                                                             │ │  
      │ │                                  Platform selection  --->                                                                        │ │  
      │ │                                  Kernel Features  --->                                                                           │ │  
      │ │                                  Boot options  --->                                                                              │ │  
      │ │                                  Power management options  --->                                                                  │ │  
      │ │                                  CPU Power Management  --->                                                                      │ │  
      │ │                                  Firmware Drivers  --->                                                                          │ │  
      │ │                              [*] ACPI (Advanced Configuration and Power Interface) Support  --->                                 │ │  
      │ │                              [*] Virtualization  --->                                                                            │ │  
      │ │                              [*] ARM64 Accelerated Cryptographic Algorithms  --->                                                │ │  
      │ │                                  General architecture-dependent options  --->                                                    │ │  
      │ │                              [*] Enable loadable module support  --->                                                            │ │  
      │ │                              -*- Enable the block layer  --->                                                                    │ │  
      │ │                                  IO Schedulers  --->                                                                             │ │  
      │ │                                  Executable file formats  --->                                                                   │ │  
      │ │                                  Memory Management options  --->                                                                 │ │  
      │ │                              [*] Networking support  --->                                                                        │ │  
      │ │                                  Device Drivers  --->                                                                            │ │  
      │ │                                  File systems  --->                                                                              │ │  
      │ │                                  Security options  --->                                                                          │ │  
      │ │                              -*- Cryptographic API  --->                                                                         │ │  
      │ │                                  Library routines  --->                                                                          │ │  
      │ │                                  Kernel hacking  --->                                                                            │ │  
      │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
      ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
      │                                       <Select>    < Exit >    < Help >    < Save >    < Load >                                       │  
      └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  
    

    Linux kernel make详细帮助:

    $ make help
    Cleaning targets:
    ...
    
    Configuration targets:
      config	  - Update current config utilising a line-oriented program
      nconfig         - Update current config utilising a ncurses menu based program
      menuconfig	  - Update current config utilising a menu based program
      xconfig	  - Update current config utilising a Qt based front-end
      gconfig	  - Update current config utilising a GTK+ based front-end
      oldconfig	  - Update current config utilising a provided .config as base
      localmodconfig  - Update current config disabling modules not loaded
      localyesconfig  - Update current config converting local mods to core
      defconfig	  - New config with default from ARCH supplied defconfig
      savedefconfig   - Save current config as ./defconfig (minimal config)
      allnoconfig	  - New config where all options are answered with no
      allyesconfig	  - New config where all options are accepted with yes
      allmodconfig	  - New config selecting modules when possible
      alldefconfig    - New config with all symbols set to default
      randconfig	  - New config with random answer to all options
      listnewconfig   - List new options
      olddefconfig	  - Same as oldconfig but sets new symbols to their
                        default value without prompting
      kvmconfig	  - Enable additional options for kvm guest kernel support
      xenconfig       - Enable additional options for xen dom0 and guest kernel support
      tinyconfig	  - Configure the tiniest possible kernel
      testconfig	  - Run Kconfig unit tests (requires python3 and pytest)
    
    Other generic targets:
      all		  - Build all targets marked with [*]
    * vmlinux	  - Build the bare kernel
    * modules	  - Build all modules
      modules_install - Install all modules to INSTALL_MOD_PATH (default: /)
      dir/            - Build all files in dir and below
      dir/file.[ois]  - Build specified target only
      dir/file.ll     - Build the LLVM assembly file
                        (requires compiler support for LLVM assembly generation)
      dir/file.lst    - Build specified mixed source/assembly target only
                        (requires a recent binutils and recent build (System.map))
      dir/file.ko     - Build module including final link
      modules_prepare - Set up for building external modules
      tags/TAGS	  - Generate tags file for editors
      cscope	  - Generate cscope index
      gtags           - Generate GNU GLOBAL index
      kernelrelease	  - Output the release version string (use with make -s)
      kernelversion	  - Output the version stored in Makefile (use with make -s)
      image_name	  - Output the image name (use with make -s)
      headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
                        (default: ./usr)
    
    Static analysers:
      checkstack      - Generate a list of stack hogs
      namespacecheck  - Name space analysis on compiled kernel
      versioncheck    - Sanity check on version.h usage
      includecheck    - Check for duplicate included header files
      export_report   - List the usages of all exported symbols
      headerdep       - Detect inclusion cycles in headers
      coccicheck      - Check with Coccinelle
    
    Tools:
      nsdeps          - Generate missing symbol namespace dependencies
    
    Kernel selftest:
      kselftest       - Build and run kernel selftest (run as root)
                        Build, install, and boot kernel before
                        running kselftest on it
      kselftest-clean - Remove all generated kselftest files
      kselftest-merge - Merge all the config dependencies of kselftest to existing
                        .config.
    
    Devicetree:
    * dtbs             - Build device tree blobs for enabled boards
      dtbs_install     - Install dtbs to /boot/dtbs/
      dt_binding_check - Validate device tree binding documents
      dtbs_check       - Validate device tree source files
    
    Userspace tools targets:
      use "make tools/help"
      or  "cd tools; make help"
    
    Kernel packaging:
    ...
    
    Documentation targets:
    ...
    
    Architecture specific targets (arm64):
    * Image.gz      - Compressed kernel image (arch/arm64/boot/Image.gz)
      Image         - Uncompressed kernel image (arch/arm64/boot/Image)
      install       - Install uncompressed kernel
      zinstall      - Install compressed kernel
                      Install using (your) ~/bin/installkernel or
                      (distribution) /sbin/installkernel or
                      install to $(INSTALL_PATH) and run lilo
    
      make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
      make V=2   [targets] 2 => give reason for rebuild of target
      make O=dir [targets] Locate all output files in "dir", including .config
      make C=1   [targets] Check re-compiled c source with $CHECK (sparse by default)
      make C=2   [targets] Force check of all c source with $CHECK
      make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections
      make W=n   [targets] Enable extra build checks, n=1,2,3 where
    		1: warnings which may be relevant and do not occur too often
    		2: warnings which occur quite often but may still be relevant
    		3: more obscure warnings, can most likely be ignored
    		Multiple levels can be combined with W=12 or W=123
    
    Execute "make" or "make all" to build all targets marked with [*] 
    For further info see the ./README file
    

    1.5 编译

    AMD 4800H CPU 8G内存16线程大约需要5分钟编译

    # 根据CPU线程数设置
    $ make -j 16
    

    最后编译完成的内核位于arch/x86/boot/bzImage

    $ ls -l arch/arm64/boot/Image
    -rw-rw-r-- 1 dev dev 26092032 8月  12 21:16 arch/arm64/boot/Image
    

    至此,Linux kernel编译完成


    linux-5.4.50文件夹编译完的磁盘占用情况

    $ du -lh --max-depth=1
    208K	./LICENSES
    48M	./Documentation
    44M	./lib
    121M	./sound
    35M	./tools
    2.3M	./init
    30M	./crypto
    13M	./virt
    42M	./mm
    50M	./include
    75M	./kernel
    5.9M	./scripts
    204K	./certs
    266M	./fs
    224M	./arch
    1.6M	./samples
    8.9M	./security
    432M	./net
    128K	./usr
    17M	./block
    4.3M	./ipc
    2.9G	./drivers
    5.4G	.
    

    2.下载和编译busybox

    busybox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils,shellutils等工具,busybox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。

    2.1 下载busybox

    下载地址:https://busybox.net/downloads/

    wget https://busybox.net/downloads/busybox-1.32.0.tar.bz2
    

    2.2 设置CPU架构(★)

    这里以arm64架构为例。

    # 设置CPU架构
    $ export ARCH=arm64
    
    # 设置交叉编译工具链前缀
    $ export CROSS_COMPILE=aarch64-linux-gnu-
    

    2.3 设置系统选项

    # 生成默认.config
    $ make  defconfig
    
    # 设置busybox选项
    $ make menuconfig
    

    修改选项

        ...
        Settings  ---> 
            ...
            # 静态编译busybox
            --- Build Options  
            [*] Build static binary (no shared libs) 
            ...
        ...
    

    bosybox make详细帮助:

    $ make help
    ...
    
    Configuration:
      allnoconfig		- disable all symbols in .config
      allyesconfig		- enable all symbols in .config (see defconfig)
      config		- text based configurator (of last resort)
      defconfig		- set .config to largest generic configuration
      menuconfig		- interactive curses-based configurator
      oldconfig		- resolve any unresolved symbols in .config
      android2_defconfig    - Build for android2
      cygwin_defconfig      - Build for cygwin
      TEST_nommu_defconfig  - Build for TEST_nommu
      android_defconfig     - Build for android
      TEST_noprintf_defconfig - Build for TEST_noprintf
      android_ndk_defconfig - Build for android_ndk
      android_502_defconfig - Build for android_502
      TEST_rh9_defconfig    - Build for TEST_rh9
      freebsd_defconfig     - Build for freebsd
    
    
    Installation:
      install		- install busybox into CONFIG_PREFIX
      uninstall
    ...
    

    2.4 编译

    # 根据CPU线程数设置
    $ make -j 16
    

    安装busybox,默认路径为当期目录的_install文件夹

    make install
    
    $ file _install/bin/busybox 
    _install/bin/busybox: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=15c3d931be02d441c975fd054f694b620fe5b87c, for GNU/Linux 3.7.0, stripped
    

    至此,busybox静态编译完成


    busybox-1.32.0文件夹编译完的磁盘占用情况

    $ du -lh --max-depth=1
    636K	./examples
    276K	./mailutils
    276K	./findutils
    2.5M	./archival
    256K	./init
    524K	./console-tools
    5.5M	./networking
    248K	./e2fsprogs
    7.4M	./include
    1016K	./procps
    1.4M	./docs
    232K	./sysklogd
    4.0K	./.tmp_versions
    1.7M	./scripts
    524K	./applets
    108K	./selinux
    368K	./modutils
    540K	./loginutils
    196K	./debianutils
    3.9M	./util-linux
    28K	./arch
    952K	./editors
    7.0M	./shell
    2.3M	./miscutils
    3.3M	./coreutils
    36K	./qemu_multiarch_testing
    128K	./printutils
    12K	./applets_sh
    5.0M	./libbb
    116K	./klibc-utils
    124K	./libpwdgrp
    252K	./configs
    1.7M	./testsuite
    436K	./runit
    55M	.
    

    3.制作根文件系统rootfs

    基于busybox的文件系统启动过程:

    /sbin/init => /etc/inittab => /etc/init.d/rdS => /etc/fstab ...
    

    3.1 创建根目录所需的目录

    $ cd busybox-1.32.0/_install
    
    $ ls
    bin  linuxrc  sbin  usr
    
    $ mkdir -p dev etc home lib mnt proc root sys tmp var
    
    $ ls
    bin  dev  etc  home  lib  linuxrc  mnt  proc  root  sbin  sys  tmp  usr  var
    

    根文件系统目录说明

    /bin: 系统管理员和用户均可使用的命令
    /sbin: 系统管理员使用的系统命令
    /dev: 存储特殊文件或设备文件;设备两种类型:字符设备、块设备
    /etc: 系统配置文件
    /home: 普通用户目录
    /root:root用户目录
    /lib: 为系统启动或根文件上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
    /mnt:临时挂载点
    /tmp: 临时文件存储目录
    /usr:usr hierarchy,全局共享的只读数据路径
    /var:存储常发生变化的数据目录:cache、log等
    /proc: 基于内存的虚拟文件系统,用于为内核及进程存储其相关信息
    /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径:其主要作用在于为管理linux设备提供一种统一模型的接口;

    
    

    3.2 创建根目录所需的必要文件

    • etc/inittab
    $ cd busybox-1.32.0/_install
    $ vim etc/inittab
    $ chmod 755 etc/inittab
    

    etc/inittab内容:

    ::sysinit:/etc/init.d/rcS
    ::respawn:-/bin/sh
    ::askfirst:-/bin/sh
    ::cttlaltdel:/bin/umount -a -r
    

    inittab语法:

    <id>:<runlevels>:<action>:<process>
    
    id : /dev/id
    runlevels : 忽略
    action : 何时执行,有以下选项 sysinit, respawn, askfirst, wait, once,restart, ctrlaltdel, and shutdown
    process : 应用程序或脚本
    
    • etc/init.d/rcS
    $ cd busybox-1.32.0/_install
    $ mkdir -p etc/init.d/
    $ vim etc/init.d/rcS
    $ chmod 755 etc/init.d/rcS
    

    etc/init.d/rcS内容:

    echo "----------mount all in fstab----------------"
    /bin/mount -a #读取/etc/fstab,加载文件系统
    mkdir -p /dev/pts
    mount -t devpts devpts /dev/pts
    echo /sbin/mdev > /proc/sys/kernel/hotplug
    mdev -s
    echo "****************Hello itas109******************"
    echo "Kernel Version:linux-5.4.50"
    echo "***********************************************"
    
    • etc/fstab
    $ cd busybox-1.32.0/_install
    vim etc/fstab
    

    etc/fstab内容:

    #device mount-point type option dump fsck
    proc  /proc proc  defaults 0 0
    temps /tmp  rpoc  defaults 0 0
    none  /tmp  ramfs defaults 0 0
    sysfs /sys  sysfs defaults 0 0
    mdev  /dev  ramfs defaults 0 0
    
    • 添加设备文件
    $ cd busybox-1.32.0/_install
    $ cd dev
    $ sudo mknod console c 5 1
    $ sudo mknod null c 1 3
    

    制作根文件系统镜像文件rootfs.cpio.gz

    $ cd busybox-1.32.0/_install
    $ find . | cpio -o -H newc > rootfs.cpio 
    $ gzip -c rootfs.cpio > rootfs.cpio.gz
    

    4.Linux系统运行

    cd ~
    $ qemu-system-aarch64 \
      -cpu cortex-a57 \
      -m 512M \
      -machine type=virt \
      -nographic \
      -smp 1 \
      -kernel ./Image  \
      -initrd ./rootfs.cpio.gz   \
      -append "rdinit=/linuxrc console=ttyAMA0" \
      -device virtio-scsi-device
    

    启动结果:

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070]
    [    0.000000] Linux version 5.4.50 (dev@dev) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu1)) #1 SMP PREEMPT Wed Aug 12 21:09:35 CST 2020
    ...
    
    ----------mount all in fstab----------------
    mount: mounting temps on /tmp failed: No such device
    /etc/init.d/rcS: line 5: can't create /proc/sys/kernel/hotplug: nonexistent directory
    ****************Hello itas109******************
    Kernel Version:linux-5.4.50
    ***********************************************
    
    Please press Enter to activate this console. 
    / # uname -a
    Linux (none) 5.4.50 #1 SMP PREEMPT Wed Aug 12 21:09:35 CST 2020 aarch64 GNU/Linux
    

    Reference:
    NULL

    展开全文
  • 由于鲲鹏的流行趋势,尝试基于arm的mysql安装 网上很多教程缺斤少两,总是差点意思,亲测后总结一下内容 此教程仅适用于mysql5版本,大于mysql5版本不确保正确 下载地址为:...

    由于鲲鹏的流行趋势,尝试基于arm的mysql安装

    网上很多教程缺斤少两,总是差点意思,亲测后总结一下内容

    此教程仅适用于mysql5版本,大于mysql5版本不确保正确

    下载地址为:https://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7.27-aarch64.tar.gz
    1. 添加mysql用户组和mysql用户,用于隔离mysql进程
    [root@arm ~]# groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
    2.安装依赖库
    [root@arm ~]# yum install -y libaio*
    3. 下载解压Mysql
    [root@arm ~]# wget https://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7.27-aarch64.tar.gz
    [root@arm ~]# tar xvf mysql-5.7.27-aarch64.tar.gz -C /usr/local/
    4.配置Mysql
    [root@arm ~]# mv /usr/local/mysql-5.7.27-aarch64 /usr/local/mysql
    [root@arm ~]# mkdir -p /usr/local/mysql/logs
    [root@arm ~]# chown -R mysql:mysql /usr/local/mysql
    [root@arm ~]# ln -sf /usr/local/mysql/my.cnf /etc/my.cnf
    [root@arm ~]# cp -rf /usr/local/mysql/extra/lib* /usr/lib64/
    [root@arm ~]# mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.old
    [root@arm ~]# ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

    # 设置开机启动
    [root@arm ~]# cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    [root@arm ~]# chmod +x /etc/init.d/mysqld
    [root@arm ~]# systemctl enable mysqld
    5. 添加环境变量
    [root@ecs-arm ~]# vi /etc/profile
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$PATH:$MYSQL_HOME/bin

    [root@ecs-arm ~]# source /etc/profile

    随机密码初始化登录
    # "–initialize"生成随机密码,在这里存储在/usr/local/mysql/logs/mysql-error.log
    [root@ecs-arm ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    [root@ecs-arm ~]# systemctl start mysqld
    [root@ecs-arm ~]# systemctl status mysqld
    # 查看随机密码
    [root@ecs-arm ~]# cat /usr/local/mysql/logs/mysql-error.log | grep password

    6.登录mysql修改密码(需要输入随机密码)

    [root@localhost /]#  mysql -u root -p
    Enter password:
    mysql>set password for root@localhost = password('NiDeMiMaPassWord'); ----注意最结束符分号一定要写

    7.开放远程连接

    mysql>use mysql;
    msyql>update user set user.Host='%' where user.User='root';
    mysql>flush privileges;

    展开全文
  • 供应嵌入式linux/Wince 3G EVDO/WCDMA无线上网卡 ,可提供相关系统的驱动程序,可二次开发3C数码终端(导航仪/MID)、3G路由器,3G视频服务器,3G工业数据采集系统 我们的数据卡和模块产品全面支持嵌入式操作系统下...
  • RaspberryPi树莓派处理器使用的是ARM架构,而一般电脑则为x86或x64架构,均不能适用,故只能在系统中重新编译安装RXTX源码,此so文件为在arm架构的树莓派编译制作的文件,直接放在jre目录即可运行
  • 基于ARM+Linux架构智能油气水井物联网系统设计
  • 命令:uname -m 示例: tyb@amax:~$ uname -m x86_64
  • unixbench下载地址: ...系统基本测试 $ cd unixbench $make $./Run 2d、3d测试 在Makefile中 GL_LIBS后添加-lm 取消注释GRAPHICS_TESTS = defined $ cd unixbench $make $./Run graphics  ...
  • linux系统arm架构的CPU与Cache

    千次阅读 2017-04-22 08:06:21
    【摘要】【写作原因】【问题构造】【分析一】总体流程【分析二】get_free_pages与mmap...无论是arm还是powerpc、mips、x86等,提高memory的访问速度都是cpu提高自身性能的重要手段,cache由此而来;无论是Linux还...
  • ARM架构(过去称作进阶精简指令集机器(Advanced RISC Machine),更早称作Acorn RISC Machine)是一个32位元精简指令集(RISC) 中央处理器(processor)架构,其广泛地使用在许多嵌入式系统(embedded)设计。...
  • Arm架构系统调用

    千次阅读 2018-02-08 08:24:58
    缺页异常、中断和系统调用同属arm异常处理,笔者计划分三篇文档分别介绍一下,其实在汇编阶段三种处理流程有很多相通之处,不过为了阅读方便,即使相同的部分也会重新在各自文档中介绍一遍。   【正文一】linux...
  • 各位大神,哪位那里有对应arm架构,对应linux内核2.6.32的Linux系统的iso镜像,比如说CentOS 6 arch,ubuntu10.04 arch,拜托了!</p>
  • 可以看到是armv7l,我查了一下是32位的arm架构,即下载第一个就好了 然后用SSH Secure Shell远程上去把压缩包或者解压后的文件传过去 这样拖过去有个问题,需要改文件JDK文件夹的权限 然后配上环境...
  • 本文主要记录S3C6410/ARM1176JZF-S架构Linux(kernel 2.6.35)内核如何进行进程切换。 http://www.2ndmoon.net/weblog/?p=585 进程切换是操作系统进程调度的基础,首先要能够实现切换,接下来才谈得上“多进程”、...
  • 在嵌入式开发和测试中,有时需要在PC和开发板的arm-Linux系统间传送文件,这可以使用NFS服务器来实现。... 在NFS的服务架构中,PC端是server,arm-Linux系统是client。 安装HaneWinNFSServer_ha_setup,下一步就行...
  • 基于ARM架构的高集成度嵌入式处理器的出现为易于使用和低成本的Linux平台开辟了市场。只需几分钟,配备适当的Linux发行版,开发人员就可以将现成的电路板(如BeagleBoard或Panda Board)插入主机PC并开始创建软件。...
  • linux中,系统调用是非常重要的一个机制。本文首先探讨了系统调用需要哪些文件的支持,之后讨论如何增加自己的系统调用。
  • Linux内核ARM架构异常中断向量表

    千次阅读 2020-07-18 13:21:34
    Linux内核ARM架构异常中断向量表说明ARM中异常中断的种类ARM异常中断向量表内核异常向量表异常向量表跳转vector_srub宏内核启动建立异常向量表   当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断...
  • 基于ARM+Linux架构,通过CAN总线获得数据,再利用嵌入式系统平台的构建思想,实现了在嵌入式Linux操作系统下,基于ARM和 MiniGUI环境的车载信息的图形化显示。介绍了虚拟仪表系统的体系结构、数据采集节点的构成及...
  • Kankin Linux是Funtoo Linux的Stage4发行版,已编译为可在具有ARM体系结构的开源硬件上使用,*已准备好进行分布式编译* Portage ebuild系统,其中包含基于PORTS的系统的所有可能性,只有一个系统(Fu | Ge)不提供...
  • 1、Linux 基础 安装Linux操作系统 Linux文件系统 ...能够熟练使用Linux系统的基本命令...认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础
  • ARM-Linux中断系统

    2017-09-13 08:41:00
    了解Linux中断子系统,同时也需要了解ARM体系结构中断处理流程;在熟悉整个软硬件架构和流程基础上,才能对流程进行细化,然后找出问题的瓶颈。《2. 梳理中断处理子系统》 但是所有的优化都离不开一个量化的过程,...
  • 我现在在做一个linux下文件过滤驱动的透明加密 x86的架构下 劫持系统调用就可以实现了 那么arm架构下的linux要怎么去实现呢? 还是劫持系统调用吗?我查找了一下,好像没有人做过这方面的 有的也只是x86下的 不...
  • arm_linux中断子系统

    千次阅读 2018-04-20 15:22:37
     Linux中断子系统4个部分:普通外设驱动、Linux kernel通用中断处理模块(硬件无关代码)、CPU架构相关处理、中断控制器驱动代码 图1.1 Linux 中断子系统分层图 1.3. 两种中断请求(ARM):IRQ和FIQ1.4. 几个...
  • 1.备份系统之前的源 cp /etc/apt/sources.list/etc/apt/sources.list.bak 2.修改源文件/etc/apt/sources.list vim/etc/apt/sources.list 将原来的内容删除,将下面的源内容粘贴上。 这里推荐比较好的两个国内...
  • ARM-Linux系统调用吐槽

    2013-01-06 17:16:00
    为什么80%的码农都做不了架构师?>>> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,712
精华内容 684
关键字:

arm架构linux系统

linux 订阅