加载论坛时出错,请强制刷新页面重试。

LoongArch Debian bootstrap 项目启动,已可用

杜比

debootstrap-la

感谢loongarch群“米饭”,他也正在制作loong64的debian sid
感谢 zhangning 的 rebootstrap https://salsa.debian.org/zhangn1985/rebootstrap

2022-11-15
用rebootstrap构建的bootstrap包
http://pkg.iloongarch.cn/rebootstrap/

2022-11-18
使用@yetist构建的archlinux,安装debootstrap
sudo pacman -S debootstrap

生成 rebootstrap 脚本
sudo cp -v /usr/share/debootstrap/scripts/sid rebootstrap

终端运行如下命令获取bootstrap
sudo debootstrap --arch=loong64 --no-check-gpg --exclude=usr-is-merged --variant=buildd rebootstrap ./bootstrap/ http://pkg.iloongarch.cn/rebootstrap

sudo debootstrap --arch=loong64 --no-check-gpg --variant=buildd rebootstrap ./bootstrap/ http://pkg.iloongarch.cn/rebootstrap

进入到 bootstrap chroot 环境
sudo chroot bootstrap

后续的一些配置:
挂载必要的文件系统

mount -t proc proc proc
mount -t sysfs sys sys
mount -t devtmpfs dev dev 
mount -t devpts devpts dev/pts 
mount -t tmpfs shmfs dev/shm

创建一个普通的帐号

groupadd builder
useradd -s /bin/bash -g builder -m -k /dev/null bder
su - bder

给普通帐号bder配置基础环境

cat > ~/.bash_profile << "EOF"
exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
> set +h
> umask 022
> export LC_ALL=POSIX
> EOF

运行这两个配置脚本文件:

source ~/.bash_profile

------------------------以下是帖子历史信息,仅作参考---------------------------


~~#### 项目主页
https://gitee.com/bexsder/debootstrap-la

#### 介绍
交叉编译构建loongarch64的bootstrap

#### 软件架构
pbuilder + rebootstrap + loongarch patch


#### 安装教程

终端一

sudo apt update
sudo apt install pbuilder
git clone https://gitee.com/bexsder/debootstrap-la.git
export PATH=/usr/sbin:$PATH
sudo pbuilder create
sudo pbuilder login

终端二

sudo cp -v debootstrap-la/rebootstrap/bootstrap.sh /var/cache/pbuilder/build/xxxxxx/

回到终端一

./bootstrap.sh HOST_ARCH=loongarch64 GCC_VER=12



#### 使用说明

- “回到终端一”,运行脚本后会自动运行交叉编译和bootstrap构建。
- 脚本运行时,会使用reprepro 建立两个本地软件仓库,用于保存临时生成的deb文件。
- 脚本运行时,需要一个用于下载安装amd64平台的构建所需的依赖软件包的外部软件仓库。
- 脚本运行时,也需要一个用于下载源代码包的外部仓库,可以用reprepro在chroot外配置一个代码仓库。
- 源代码需要提前准备好,放到配置的代码仓库里,debian规则文件可使用项目提供的,也可以自己修改。
- 脚本获取软件包和代码,默认都是用sid仓库,所以要提前配置好。~~

淡炒番茄

杜比 --exclude=usr-is-merged

merge user是大势所趋


杜比

整个自动编译的流程,可以先用如下命令测试了解下:
> ./bootstrap.sh HOST_ARCH=mips64el GCC_VER=12
实测,使用sid的源,可以完成整个bootstrap的构建
loongarch源码逐步添加!


dexter

原来构建Debian的工具这么方便!学习了!


why

这个是需要在x86的电脑上运行?还是在3a5000上运行?


杜比

why x86电脑,debian11 ubuntu都可以,在虚拟机下运行也可以

因为交叉编译的过程先后的次序很重要,所以编译时是单进程的,处理器核多少关系不大
内存越大越好


杜比

因为debian官方或者镜像的代码库目前都不支持loongarch64,所以要单独把源码包下载,解压和再封包
也因为脚本是自动运行的,除非编译出错停止,所以需要配置一个代码库,把做好的包提交到里面,在rebootstrap脚本的第12行进行修改,添加配置的代码库:

: ${MIRROR:="http://http.debian.net/debian"}


why

https://github.com/loongson/binutils-gdb/tree/master

https://github.com/loongson/glibc/tree/release/2.33/master

https://github.com/loongson/gcc/tree/loongarch-12

我下载上面的源码然后把debootstrap-la下对应的修改并入之后打成deb包放入在rebootstrap脚本的第12行进行修改,添加配置的代码库。是这样的吧


杜比

why 建议先按2楼的说明,先跑一遍mips64el的,看下过程。项目里使用的源码都是debian sid代码包加入loongarch补丁的方式


杜比

debian sid源代码库发生变化,linux从5.16升级到了5.17,gcc的cross补丁版本也升级了,所以新开了个分支linux-5.17,后续构建主要在这个分支。
升级到5.17,基于 github.com/loongson/linux 制作的补丁全部可用


大道无形若水

杜比 厉害,继续加油


杜比

5月6日发布的gcc12.1已经进入debian sid ,已包含提交的loongarch基础代码


杜比

代码库建了一个20220606分支,三大件bootstrap交叉编译已全部完成


大道无形若水

杜比


时空质能

有没有考虑用龙芯旧世界的工具链从零开始交叉编译debian10,还可以使用向量指令


淡炒番茄

时空质能 不仅是工具链,基础的库例如glibc等,也是旧世界。

如果你仅仅想用更新的软件,可以自行挑选软件包编译,这样反而方便。


杜比

时空质能 loongnix 20 就是基于debian10的,目前有个extralibs库的项目,一方面针对loongnix20查漏补缺,另一方面在版本不冲突的前提下,爱好者可以提交一些新版本的deb包。
项目地址:
https://bbs.loongarch.org/d/22-loongnix/12
extralibs库的地址:
http://pkg.iloongarch.cn/loongnix20/


杜比

用rebootstrap构建的bootstrap包
http://pkg.iloongarch.cn/rebootstrap/


杜比

bootstrap 环境下软件包列表

ii  apt                            2.5.4                             loong64      commandline package manager
ii  base-files                     12.3                              loong64      Debian base system miscellaneous files
ii  base-passwd                    3.6.1                             loong64      Debian base system master password and group files
ii  bash                           5.2-2+b1                          loong64      GNU Bourne Again SHell
ii  binutils                       2.39-8                            loong64      GNU assembler, linker and binary utilities
ii  binutils-common:loong64        2.39-8                            loong64      Common files for the GNU assembler, linker and binary utilities
ii  binutils-loongarch64-linux-gnu 2.39-8                            loong64      GNU binary utilities, for mipsisa64r6el-linux-gnuabi64 target
ii  bsdutils                       1:2.38.1-1.1+b1                   loong64      basic utilities from 4.4BSD-Lite
ii  build-essential                12.9                              loong64      Informational list of build-essential packages
ii  bzip2                          1.0.8-5+b1                        loong64      high-quality block-sorting file compressor - utilities
ii  coreutils                      9.1-1                             loong64      GNU core utilities
ii  cpp                            4:12.2.0-1                        loong64      GNU C preprocessor (cpp)
ii  cpp-12                         12.2.0-9                          loong64      GNU C preprocessor
ii  dash                           0.5.11+git20210903+057cd650a4ed-9 loong64      POSIX-compliant shell
ii  debconf                        1.5.79                            all          Debian configuration management system
ii  debian-archive-keyring         2021.1.1                          all          GnuPG archive keys of the Debian archive
ii  debianutils                    5.7-0.4                           loong64      Miscellaneous utilities specific to Debian
ii  diffutils                      1:3.8-1                           loong64      File comparison utilities
ii  dpkg                           1.21.9+b1                         loong64      Debian package management system
ii  dpkg-dev                       1.21.9                            all          Debian package development tools
ii  e2fsprogs                      1.46.6~rc1-1+b1                   loong64      ext2/ext3/ext4 file system utilities
ii  findutils                      4.9.0-3                           loong64      utilities for finding files--find, xargs
ii  g++                            4:12.2.0-1                        loong64      GNU C++ compiler
ii  g++-12                         12.2.0-9                          loong64      GNU C++ compiler
ii  gcc                            4:12.2.0-1                        loong64      GNU C compiler
ii  gcc-12                         12.2.0-9                          loong64      GNU C compiler
ii  gcc-12-base:loong64            12.2.0-9                          loong64      GCC, the GNU Compiler Collection (base package)
ii  gpgv                           2.2.40-1                          loong64      GNU privacy guard - signature verification tool
ii  grep                           3.8-3                             loong64      GNU grep, egrep and fgrep
ii  gzip                           1.12-1                            loong64      GNU compression utilities
ii  hostname                       3.23                              loong64      utility to set/show the host name or domain name
ii  init-system-helpers            1.65.2                            all          helper tools for all init systems
ii  libacl1:loong64                2.3.1-1                           loong64      access control list - shared library
ii  libapt-pkg6.0:loong64          2.5.4                             loong64      package management runtime library
ii  libatomic1:loong64             12.2.0-9                          loong64      support library providing __atomic built-in functions
ii  libattr1:loong64               1:2.5.1-1                         loong64      extended attribute handling - shared library
ii  libaudit-common                1:3.0.7-1.1                       all          Dynamic library for security auditing - common files
ii  libaudit1:loong64              1:3.0.7-1.1+b2                    loong64      Dynamic library for security auditing
ii  libbinutils:loong64            2.39-8                            loong64      GNU binary utilities (private shared library)
ii  libblkid1:loong64              2.38.1-1.1+b1                     loong64      block device ID library
ii  libbz2-1.0:loong64             1.0.8-5+b1                        loong64      high-quality block-sorting file compressor library - runtime
ii  libc-bin                       2.36-5                            loong64      GNU C Library: Binaries
ii  libc-dev-bin                   2.36-5                            loong64      GNU C Library: Development binaries
ii  libc6:loong64                  2.36-5                            loong64      GNU C Library: Shared libraries
ii  libc6-dev:loong64              2.36-5                            loong64      GNU C Library: Development Libraries and Header Files
ii  libcap-ng0:loong64             0.8.3-1+b2                        loong64      alternate POSIX capabilities library
ii  libcap2:loong64                1:2.44-1                          loong64      POSIX 1003.1e capabilities (library)
ii  libcc1-0:loong64               12.2.0-9                          loong64      GCC cc1 plugin for GDB
ii  libcom-err2:loong64            1.46.6~rc1-1+b1                   loong64      common error description library
ii  libcrypt1:loong64              1:4.4.30-1                        loong64      libcrypt shared library
ii  libctf-nobfd0:loong64          2.39-8                            loong64      Compact C Type Format library (runtime, no BFD dependency)
ii  libctf0:loong64                2.39-8                            loong64      Compact C Type Format library (runtime, BFD dependency)
ii  libdb5.3:loong64               5.3.28+dfsg1-0.10                 loong64      Berkeley v5.3 Database Libraries [runtime]
ii  libdebconfclient0:loong64      0.264                             loong64      Debian Configuration Management System (C-implementation library)
ii  libdpkg-perl                   1.21.9                            all          Dpkg perl modules
ii  libext2fs2:loong64             1.46.6~rc1-1+b1                   loong64      ext2/ext3/ext4 file system libraries
ii  libffi8:loong64                3.4.4-1                           loong64      Foreign Function Interface library runtime
ii  libgcc-12-dev:loong64          12.2.0-9                          loong64      GCC support library (development files)
ii  libgcc-s1:loong64              12.2.0-9                          loong64      GCC support library (loong64)
ii  libgcrypt20:loong64            1.10.1-2                          loong64      LGPL Crypto library - runtime library
ii  libgdbm-compat4:loong64        1.23-3                            loong64      GNU dbm database routines (legacy support runtime version) 
ii  libgdbm6:loong64               1.23-3                            loong64      GNU dbm database routines (runtime version) 
ii  libgmp10:loong64               2:6.2.1+dfsg1-1.1                 loong64      Multiprecision arithmetic library
ii  libgnutls30:loong64            3.7.8-4                           loong64      GNU TLS library - main runtime library
ii  libgomp1:loong64               12.2.0-9                          loong64      GCC OpenMP (GOMP) support library
ii  libgpg-error0:loong64          1.46-1                            loong64      GnuPG development runtime library
ii  libhogweed6:loong64            3.8.1-2                           loong64      low level cryptographic library (public-key cryptos)
ii  libidn2-0:loong64              2.3.3-1+b1                        loong64      Internationalized domain names (IDNA2008/TR46) library
ii  libisl23:loong64               0.25-1                            loong64      manipulating sets and relations of integer points bounded by linear constraints
ii  liblz4-1:loong64               1.9.4-1                           loong64      Fast LZ compression algorithm library - runtime
ii  liblzma5:loong64               5.2.7-0.1                         loong64      XZ-format compression library
ii  libmount1:loong64              2.38.1-1.1+b1                     loong64      device mounting library
ii  libmpc3:loong64                1.2.1-2                           loong64      multiple precision complex floating-point library
ii  libmpfr6:loong64               4.1.0-3                           loong64      multiple precision floating-point computation
ii  libnettle8:loong64             3.8.1-2                           loong64      low level cryptographic library (symmetric and one-way cryptos)
ii  libp11-kit0:loong64            0.24.1-1                          loong64      library for loading and coordinating access to PKCS#11 modules - runtime
ii  libpam-modules:loong64         1.5.2-5                           loong64      Pluggable Authentication Modules for PAM
ii  libpam-modules-bin             1.5.2-5                           loong64      Pluggable Authentication Modules for PAM - helper binaries
ii  libpam-runtime                 1.5.2-5                           all          Runtime support for the PAM library
ii  libpam0g:loong64               1.5.2-5                           loong64      Pluggable Authentication Modules library
ii  libpcre2-8-0:loong64           10.40-2                           loong64      New Perl Compatible Regular Expression Library- 8 bit runtime files
ii  libperl5.36:loong64            5.36.0-4                          loong64      shared Perl library
ii  libselinux1:loong64            3.4-1+b3                          loong64      SELinux runtime shared libraries
ii  libsemanage-common             3.4-1                             all          Common files for SELinux policy management libraries
ii  libsemanage2:loong64           3.4-1+b3                          loong64      SELinux policy management library
ii  libsepol2:loong64              3.4-2                             loong64      SELinux library for manipulating binary security policies
ii  libsmartcols1:loong64          2.38.1-1.1+b1                     loong64      smart column output alignment library
ii  libss2:loong64                 1.46.6~rc1-1+b1                   loong64      command-line interface parsing library
ii  libstdc++-12-dev:loong64       12.2.0-9                          loong64      GNU Standard C++ Library v3 (development files) (loong64)
ii  libstdc++6:loong64             12.2.0-9                          loong64      GNU Standard C++ Library v3 (loong64)
ii  libsystemd0:loong64            252.1-1                           loong64      systemd utility library
ii  libtasn1-6:loong64             4.19.0-2                          loong64      Manage ASN.1 structures (runtime)
ii  libtinfo6:loong64              6.3+20220423-2                    loong64      shared low-level terminfo library for terminal handling
ii  libudev1:loong64               252.1-1                           loong64      libudev shared library
ii  libunistring2:loong64          1.0-2                             loong64      Unicode string library for C
ii  libuuid1:loong64               2.38.1-1.1+b1                     loong64      Universally Unique ID library
ii  libxxhash0:loong64             0.8.1-1                           loong64      shared library for xxhash
ii  libzstd1:loong64               1.5.2+dfsg-1                      loong64      fast lossless compression algorithm
ii  linux-libc-dev:loong64         6.0.8-1                           loong64      Linux support headers for userspace development
ii  login                          1:4.13+dfsg1-1                    loong64      system login tools
ii  logsave                        1.46.6~rc1-1+b1                   loong64      save the output of a command in a log file
ii  make                           4.3-4.1                           loong64      utility for directing compilation
ii  mawk                           1.3.4.20200120-3.1                loong64      Pattern scanning and text processing language
ii  mount                          2.38.1-1.1+b1                     loong64      tools for mounting and manipulating filesystems
ii  ncurses-base                   6.3+20220423-2                    all          basic terminal type definitions
ii  ncurses-bin                    6.3+20220423-2                    loong64      terminal-related programs and man pages
ii  passwd                         1:4.13+dfsg1-1                    loong64      change and administer password and group data
ii  patch                          2.7.6-7                           loong64      Apply a diff file to an original
ii  perl                           5.36.0-4                          loong64      Larry Wall's Practical Extraction and Report Language
ii  perl-base                      5.36.0-4                          loong64      minimal Perl system
ii  perl-modules-5.36              5.36.0-4                          all          Core Perl modules
ii  sed                            4.8-1                             loong64      GNU stream editor for filtering/transforming text
ii  sysvinit-utils                 3.05-7                            loong64      System-V-like utilities
ii  tar                            1.34+dfsg-1                       loong64      GNU version of the tar archiving utility
ii  tzdata                         2022f-1                           all          time zone and daylight-saving time data
ii  util-linux                     2.38.1-1.1+b1                     loong64      miscellaneous system utilities
ii  util-linux-extra               2.38.1-1.1+b1                     loong64      interactive login tools
ii  xz-utils                       5.2.7-0.1                         loong64      XZ-format compression utilities
ii  zlib1g:loong64                 1:1.2.13.dfsg-1                   loong64      compression library - runtime

下一页 »

知识共享许可协议
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。
进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途