<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://gentoo-zh.org/extern.php?action=feed&amp;tid=703&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / gentoo on wsl2]]></title>
		<link>http://www.gentoo-zh.org/viewtopic.php?id=703</link>
		<description><![CDATA[gentoo on wsl2 最近发表的帖子。]]></description>
		<lastBuildDate>Tue, 30 May 2023 13:26:05 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[gentoo on wsl2]]></title>
			<link>http://www.gentoo-zh.org/viewtopic.php?pid=805#p805</link>
			<description><![CDATA[<p>如果是家庭版安装 Hyper-V 失败可以尝试另一个脚本 Install_Hyper-V.bat</p><p>pushd &quot;%~dp0&quot;<br />dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum &gt;hyper-v.txt<br />for /f %%i in (&#039;findstr /i . hyper-v.txt 2^&gt;nul&#039;) do dism /online /norestart /add-package:&quot;%SystemRoot%\servicing\Packages\%%i&quot;<br />del hyper-v.txt<br />Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL<br />安装 Stage 3<br />在 Gentoo mirror 找符合自己电脑架构的 stage3 文件</p><p>若要用 cuda 不建议选带 musl 的，因为 cuda 只支持 glibc<br />若要用 mingw 建议不用 clang 的，gentoo 上对 clang-mingw 支持不佳<br />我选了 stage3-amd64-openrc-20221002T170543Z.tar.xz</p><p>解压成 tar 放到一个文件夹里（WSL 貌似只支持 tar.gz 和 tar），运行</p><p>wsl --import&#160; &lt;取个名字&gt; &lt;安装位置&gt; &lt;stage3 tar文件&gt; --version 2<br /># 例如<br />wsl --import&#160; Gentoo . stage3-amd64-openrc-20221002T170543Z.tar --version 2<br /># wsl --set-default &lt;名字&gt; # 如果有多个 WSL 发行版，设为默认<br />稍等片刻就能拿到热腾腾的、包含stage3的 ext4.vhdx 了。接着就靠 WSL 自带的 kernel 启动我们的Gentoo！</p><p>wsl -d &lt;名字&gt;<br />配置 Stage 3<br />参考 Gentoo AMD64 Handbook</p><p>配置编译选项<br />nano -w /etc/portage/make.conf<br /># 这些设置是由自动构建此阶段的“催化”(catalyst)构建脚本设置的。<br /># 请查阅 /usr/share/portage/config/make.conf.example <br /># 以获取一个更详细的示例。<br />COMMON_FLAGS=&quot;-O2 -pipe -march=native&quot;<br />CFLAGS=&quot;${COMMON_FLAGS}&quot;<br />CXXFLAGS=&quot;${COMMON_FLAGS}&quot;<br />FCFLAGS=&quot;${COMMON_FLAGS}&quot;<br />FFLAGS=&quot;${COMMON_FLAGS}&quot;<br />MAKEOPTS=&quot;-j4&quot; # make 时使用四线程</p><p># 注意:这个阶段是在启用了 bindist Use 标志的情况下构建的<br />PORTDIR=&quot;/var/db/repos/gentoo&quot;<br />DISTDIR=&quot;/var/cache/distfiles&quot;<br />PKGDIR=&quot;/var/cache/binpkgs&quot;</p><p># 这将把构建输出的语言设置为英语。在报告错误时，请保持此设置不变。<br />LC_MESSAGES=C<br />USE=&quot;-X &quot; # 禁用图形<br />ACCEPT_LICENSE=&quot;*&quot; # 允许一切证书 _(:з」∠)_<br /># 镜像<br />GENTOO_MIRRORS=&quot;https://mirrors.163.com/gentoo/ <a href="https://mirrors.aliyun.com/gentoo/" rel="nofollow">https://mirrors.aliyun.com/gentoo/&quot;</a><br />按 Ctrl+x 保存退出</p><p>配置 Portage<br /># 创建repos.conf目录<br />mkdir --parents /etc/portage/repos.conf<br /># 复制 Portage 提供的 Gentoo 仓库配置文件到这个（新创建的）目录<br />cp /usr/share/portage/config/repos.conf /etc/portage/repos.conf/gentoo.conf<br /># 更新内容<br />emerge-webrsync<br />配置 CPU_FLAGS_*<br />一些架构（包括 AMD64/X86、ARM、PPC）有称为 CPU_FLAGS_ARCH 的 USE_EXPAND 变量（请酌情将 ARCH 替换为相关的系统架构）。</p><p>用于构建编译特定的汇编代码或其他内置函数——通常是手写的或其他额外的， 并且与要求编译器输出针对某个 CPU 功能的优化代码不同。</p><p>emerge app-portage/cpuid2cpuflags <br />echo &quot;*/* $(cpuid2cpuflags)&quot; &gt; /etc/portage/package.use/00cpu-flags<br /># emerge sys-kernel/linux-firmware # 不建议，占用空间大<br />语言设置*<br />echo zh_CN.UTF-8 UTF-8 &gt;&gt; /etc/locale.gen<br />locale-gen<br />eselect locale list<br />eselect locale set &lt;选择 zh_CN.UTF-8 UTF-8 &gt;<br />echo LC_COLLATE=\&quot;C.UTF-8\&quot; &gt;&gt;/etc/env.d/02locale<br />. /etc/profile<br />env-update<br />其他配置<br /># 设置历史记录格式<br />echo export HISTTIMEFORMAT=\&quot;%F %T \`whoami\` \&quot;&gt;&gt;/etc/profile<br /># sed -i.bak &#039;/[c|C]lear/&#039;d /etc/skel/.bash_logout # 取消注销时清屏<br /># 添加用户<br />groupadd admin<br />emerge app-admin/sudo&#160; dev-vcs/git<br />echo %admin ALL=\(ALL\) ALL &gt;&gt; /etc/sudoers<br />useradd &lt;你的名字&gt; -g admin<br /># echo min=1,1,1,1,1&gt;&gt; /etc/security/passwdqc.conf # 禁用密码强度检查<br />passwd &lt;你的名字&gt;<br />echo &lt;user&gt;&#160; &gt;&gt;/etc/wsl.conf<br />echo default = &lt;你的名字&gt; &gt;&gt;/etc/wsl.conf<br />su &lt;你的名字&gt;</p><p># 解决 libcuda.so.1 is not a symbolic link<br />CUDAPATH=/mnt/c/Windows/System32/lxss/lib<br />rm $CUDAPATH/libcuda.so.1 $CUDAPATH/libcuda.so<br />ln -s $CUDAPATH/libcuda.so.1.1 $CUDAPATH/libcuda.so.1<br />ln -s $CUDAPATH/libcuda.so.1.1 $CUDAPATH/libcuda.so</p><br /><p>~/.bashrc</p><p># If not running interactively, don&#039;t do anything<br />if [[ $- != *i* ]] ; then<br />&#160; &#160; &#160; &#160; # Shell is non-interactive.&#160; Be done now!<br />&#160; &#160; &#160; &#160; return<br />fi</p><p># history<br />HISTSIZE=100000<br />HISTFILESIZE=2000000<br />HISTIGNORE=&quot;pwd:history&quot;<br />shopt -s histappend</p><p># alias from Ubuntu<br />alias ll=&#039;ls -lF&#039;<br />alias la=&#039;ls -A&#039;<br />alias l=&#039;ls -CF&#039;</p><p># wsl proxy<br />export ip=$(cat /etc/resolv.conf | grep nameserver | awk &#039;{print $2}&#039;)<br />alias wget=&quot;wget -c&quot;<br />alias&#160; pwget=&quot;wget -e https-proxy=https://$ip:7890 -e http-proxy=http://$ip:7890 -c&quot;<br />git config --global http.https://github.com.proxy socks5://$ip:7890<br />git config --global https.https://github.com.proxy socks5://$ip:7890</p><p># Put your fun stuff here.<br />export PATH=$PATH:/usr/lib/wsl/lib</p>]]></description>
			<author><![CDATA[dummy@example.com (semes)]]></author>
			<pubDate>Tue, 30 May 2023 13:26:05 +0000</pubDate>
			<guid>http://www.gentoo-zh.org/viewtopic.php?pid=805#p805</guid>
		</item>
	</channel>
</rss>
