U盘上的移动linux环境cgywin

还不是太会用这个cgywin.

------------------------------------------

U盘上的移动linux环境(cygwin篇)


虽然在自己的本本上装好了ubuntu,但是在单位的机子上工作时,还是用的windows,无法使用强大的SHELL。于是就,想起了cygwin了。但是,我总不能给每一台机器装cygwin吧。于是乎,就产生把cygwin装进U盘的想法。自己鼓捣了半天,没有成功,应该是装cygwin的时候,要向系统注册一些东西了。上网一搜,居然有现成的办法。先拿出来共享一下(其中的AVR/ARM可以略过):
--------------------------------------
转自:http://www.geektalks.cn/article.php?story=20090120145510146
U盘上的AVR/ARM开发环境(Cygwin篇)
2009/01/20 02:55 下午
作者: sunge
嵌入式系统

如果你想把AVR或者ARM的开发链连同自己的项目代码和文档随身携带,省去在若干台PC上安装和同步的麻烦,你就一定要读读这篇文章,再花上大约1个小时,制作一个适合自己的随身U盘。

0 先决条件

- 一个至少2G容量的U盘。如果容量更小的话,不能保证安装比较完整的Cygwin环境,或者没有空间存放自己的开发文件。

- U盘支持USB 2.0高速。(所以最好选择2G以上的U盘来保证这一点)

- Windows PC具备USB 2.0端口。如果仅支持USB 1.1,软件运行或者编译程序的速度会非常缓慢。

 


1 安装你需要的软件到一台Windows PC

你或许已经安装了这些软件,如果没有的话,请先安装到你的一台PC上。

- Cygwin (Cygwin的安装是可以定制软件包的,如果觉得空间不够,可以安装一个最小的系统,比如必须的文件和Make工具等等。同时,请至少安装上不需要X11支持的rxvt软件包。)

- WinAVR (如果你想开发AVR单片机)

- YAGARTO 和 OpenOCD (如果你想开发ARM嵌入式系统)

- emacs

2. 复制你需要的软件到U盘的根目录下。

请把软件的文件夹完整地复制到U盘的根目录下,暂且不必考虑PATH和注册表的问题。比如,如果你的cygwin安装在C盘,而USB Stick是F盘,请把"c:/cygwin"复制到"f:/cygwin"。同样地,请把"c:/WinAVR-20081205"复制为"f: /WinAVR-20081205"。

3. 在U盘上建立自己的工作目录

以U盘为F驱动器做例子,比如我叫做"sunge",就建立一个"f:/cygwin/home/sunge"文件夹,来作为自己的“家”目录。你可以把你的开发程序和文档复制到你的“家”里,不用在PC的硬盘上存储任何的个人数据。

你还需要修改"f:/cygwin/etc/profile"文件。请找到这一行:

USER="`id -un`"

你需要把它注释掉,然后更改如下:

# Set the user id
#USER="`id -un`"
USER="sunge"
export USER

HOME="/home/$USER"
export HOME

4.  制作启动脚本

请下载以下脚本,并保存为"f:/rungnu.bat"文件(如果你的U盘是F驱动器):

:: rungnu.bat: run portable cygwin clean and safely.

@echo off
:: CAUTION: run this script (rungnu.bat) ONCE at a time!!
:: if you want to open another terminal, i.e. another RXVT session,
:: please open the new terminal through the current shell, other
:: than this script.

echo ---CAUTION:---
echo run this script (rungnu.bat) ONCE at a time!!
echo if you want to open another terminal, i.e. another RXVT session,
echo please open the new terminal through the current shell, other
echo than this script.
echo --------------

:: set software version
set WINAVR_VER=20081205
set EMACS_VER=22.3

:: determine the current drive, and set parameter "WD" to it. i.e. if usb stick is "f: drive", "%WD%" is "f:".
for /F %%A in ('cd') do set WD=%%A

:: record the existed Cygwin mount point.
rem cygwin/bin/mount -m | cygwin/bin/sed s/mount/"%WD%/cygwin/bin/mount"/ > cygwin/tmp/mount.log

cygwin/bin/mount -m | cygwin/bin/sed s/mount/"%WD%/cygwin/bin/mount"/ > cygwin/tmp/mount.log

:: umount the existed Cygwin.
rem cygwin/bin/umount -c
cygwin/bin/umount -A

:: mount Cygwin which is on the current drive.
cygwin/bin/mount -bfu %WD%cygwin/ /
cygwin/bin/mount -bfu %WD%cygwinbin /usr/bin
cygwin/bin/mount -bfu %WD%cygwinlib /usr/lib

:: set environment variables for WinAVR toolset
set PORTABLEWINAVR=%WD%WinAVR-%WINAVR_VER%
set PATH=%PORTABLEWINAVR%/bin;%PORTABLEWINAVR%utils/bin;%PATH%

:: set environment variables for Emacs
set PORTABLEEMACS=%WD%emacs-%EMACS_VER%-bin-i386/emacs-%EMACS_VER%
set PATH=%PORTABLEEMACS%/bin;%PATH%

:: set environment variables for OpenOCD
set PORTABLEOPENOCD=%WD%openocd-r717
set PATH=%PORTABLEOPENOCD%/bin;%PATH%

:: set environment variables for yet-another-gnu-arm-toolschain
set PORTABLEARM=%WD%yagarto
set PATH=%PORTABLEARM%/bin;%PATH%

echo ---CAUTION:---
echo DO NOT CLOSE THIS DOS BOX UNTIL IT NORMALLY EXIT!!
echo --------------

:: if X11 exist, start X.
rem set DISPLAY=localhost:0.0
rem run cygwinusrX11R6binXWin -multiwindow -emulate3buttons 200

:: run rxvt without closing the dos box.
cygwin/bin/rxvt.exe -title "" -bg "#fafad2" -fg "#000040" -color10 green4 -color14 brown -fn "Lucida Console-14" -geometry 80x50+0+0 -sl 4000 -sr -tn rxvt -e /bin/bash --login -i

:: the following commands ensure the safe and clean exit of the portable Cygwin.

:: umount current Cygwin
rem cygwin/bin/umount -c
cygwin/bin/umount -A

:: restore the old Cygwin mount points, if it have.
cygwin/bin/bash  cygwin/tmp/mount.log
cygwin/bin/rm    cygwin/tmp/mount.log

:: end of rungnu.bat

如果你安装了不同的软件或软件版本到U盘,你也许需要修改那些用粉红色标记的地方(你可能需要读读文件中的注解)。方法是注释掉你没有安装的软件,为增加的软件添加新的项目,或者修改软件的版本。

5. 运行U盘上的cygwin

例如,你的U盘被识别为F驱动器,请点击F驱动器下的"rungnu.bat"脚本。不必担心,这个脚本的运行会修改注册表,但是在退出时会还原,也不会破坏你的原有的任何设置。即使你的PC上已经装有Cygwin系统,这个脚本也不会对原有的Cygwin有任何损害。

注意:请不要在关掉DOS窗口!

在bash退出时,DOS窗口会自动关闭。

注意:请不要重复点击rungnu.bat!

如果需要再开一个终端,请在原来的rxvt终端中输入"$ rxvt&"来启动,而不是再点击一次rungnu.bat。

6. 交叉编译的速度问题

如果你的U盘的年代并不久远,读写速度很快,而PC具备USB 2.0端口,则和在硬盘上运行的速度相当。

7. 驱动程序和编程调试设备问题

驱动程序是不可以安装在U盘上的,要驱动PL2303,FT232,JTAGKey或者J-Link,你需要在电脑硬盘上安装这些驱动。
---------------------------------------------------
终于可以再每一台机器上使用强大的SHELL了。
不过我还没有实验过了,因为机器上本来就装的cygwin,太大了。1GU盘放不下。改天到别机器上装个精简的试下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值