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