Chinaunix首页 | 论坛 | 博客
  • 博客访问: 962760
  • 博文数量: 109
  • 博客积分: 554
  • 博客等级: 中士
  • 技术积分: 2577
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-04 12:49
文章分类

全部博文(109)

文章存档

2019年(5)

2016年(7)

2015年(9)

2014年(1)

2013年(71)

2012年(16)

分类: 嵌入式

2013-05-19 10:32:43

PC主机硬件:

处理器名称          QuadCore Intel Core i5-2300, 3100 MHz (31 x 100)

主板名称              Asus P8P67 LE 

显示适配器          NVIDIA GeForce GTX 550 Ti  (1024 MB)

3D 加速器           nVIDIA GeForce GTX 550 Ti

显示器              ViewSonic VA2220w  [22" LCD]  (RCR093583901)

由于PC机的硬件比较新,所以下载最新的Debian 7.0,电脑自身不带光驱,我们可以采用Universal USB InstallerU盘启动安装linux

一.制作Debian u盘启动盘

选择Debian的原因,很多linux发行版都是基于Debian的,例如ubuntu Linux Mint

debian相对于ubunt更新会慢些,但是debianubuntu更稳定,更适用于做服务器。

从官方网站下载并安装Universal-USB-Installer-1.9.3.2

准备debian 7镜像文件debian-7.0.0-i386-netinst.iso

运行Universal-USB-Installer-1.9.3.2.exe,点击“I Agree”进入制作界面。

 

如上图所示,我们选择Debian Netinst,表示从网络安装debian

点击”Browse”选择我们下载的debian-7.0.0-i386-netinst.iso

   以上步骤都完成后,点击“Create”按钮。

image

 出现的第1个提示界面,让你确认所选盘符是你自己的优盘,如果确认直接点(Y)”按钮,如果不是就点(N)”按钮。

image

进入正式安装界面,先解开ISO文件

image

 

然后会把文件拷贝到U盘,等待文件拷贝完成,u盘就成为Debian启动盘。

image

 

二.安装Debian操作系统

1. 安装Debian最小系统

root密码: xxxx

新建普通用户: enzo   密码: xxxx

由于网速原因,我们只安装SSH服务和linux基本工具

2. 安装图形化界面并

安装xorg
root@debian:~# apt-get install xorg

安装gdmGNOME Display Manager
root@debian:~# apt-get install gdm3

安装最小化的GNOME桌面环境
root@debian:~# apt-get install gnome-core

安装中文字体支持
root@debian:~# apt-get install ttf-wqy-zenhei

3. 安装配置sudo命令

更改默认编辑器为Videbian默认编辑器nano

# update-alternatives --config editor

2 个候选项可用于替换 editor (提供 /usr/bin/editor)

  选择       路径             优先级  状态

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

* 0            /bin/nano           40        自动模式

  1            /bin/nano           40        手动模式

  2            /usr/bin/vim.tiny   10        手动模式

输入数字2,选择vi

# apt-get install sudo

sudo用户不输入密码使用sudo命令,输入#visudo命令,编辑文件

# Allow members of group sudo to execute any command

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

将用户添加到sudo组,用户就可以使用sudo命令

# usermod -a -G sudo enzo

# id enzo

uid=1000(enzo) gid=1000(enzo) =1000(enzo),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev)

运行sudo apt-get update 成功

image

 

三.架设git服务器

参考连接:

1、安装 openssh服务器

sudo apt-get install openssh-server openssh-client

2、创建个人公钥和私钥

在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥

ssh-keygen -t rsa

默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥

ssh-keygen -t rsa -b 4096

默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:

id_rsa  id_rsa.pub  known_hosts

3. 安装 git服务器

#apt-get install git git-core

4. 配置 git服务器

创建git服务器管理用户

sudo useradd -m git

sudo passwd git

 

密码: tdqs

创建git仓库存储目录

sudo mkdir /home/git/repositories

设置git仓库权限

sudo chown git:git /home/git/repositories

sudo chmod 755 /home/git/repositories

初始化全局设置

git config --global user.name "myname"

git config --global user.email "myname@server"

5、安装pythonsetup tool

sudo apt-get install python-setuptools

6、获取并安装gitosis git权限控制工具

cd /tmp

git clone

cd gitosis

sudo python setup.py install

7、配置gitosis

cp ~/.ssh/id_rsa.pub /tmp

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

8管理gitosis配置

cd ~

git clone

( YOUR_SERVER可以是你的服务器名称或者ip,我这里的Debianip172.10.16.251)

 

cd gitosis-admin/

各个用户按照前面提到的办法生成各自的ssh公钥文件后,服务器管理员把所有人的 ssh公钥文件都拿来,拷贝到keydir目录下。

开发主机上传公钥到服务器:

enzo@debian:~$ scp .ssh/id_rsa.pub

加密要拷贝到gitosis-admin/keydir/ 重命名密钥名为enzo@debian.pub

注: 命名需要遵守规则:gitosismember名称 + .pub,例如enzo@debian.pub

修改gitosis.conf文件,如下所示

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

members = a@server1

[group developers]

writable = helloworld

members = a@server1 b@server2

[group test]

writable = helloworld

members = enzo@debian

这个配置文件表达了如下含义:gitosis-admin组成员有a,该组对gitosis-admin仓库有读写权限; developers组有ab两个成员,该组对helloworld仓库有读写权限; test组有c一个成员,对helloworld仓库有只读权限。当然目前这些配置文件的修改只是在你的本地,你必须推送到gitserver上才能真正生效。加入新文件、提交并pushgit服务器:

git add .

git commit -am "add helloworld project and users"

git remote add origin ssh://git@hostname/helloworld.git

git push origin master

 

# 在客户端创建项目目录(客户端,当前用户为 XXX )

现在回到开发者客户端,上面创建了一个新项目project1并提交到了git server 。我们这里就创建此项目的信息.注意 项目名称 project1要与gitosis.conf文件配置一致,

$ mkdir /home/用户/helloworld

$ cd /home/用户/helloworld

$ git init

添加新文件a.txt

$ git add . # 新增文件 留意后面有一个点

$ git commit -a -m “初始化项目project1″

# 然后就到把这个项目放到git server服务器上去.

$ git remote add origin ssh://git@xxx:helloworld.git
$ git push origin master

 

也可以合二为一

$ git push git@xxx:project1.git master

常见问题FAQ

1 .错误提示:fatal: remote origin already exists.

解决办法:

$ git remote rm origin

然后在执行:$ git remote add origin git@github.com:defnngj/hello-world.git 就不会报错误了

 

2. 在执行

$ git push origin master

错误提示:error:failed to push som refs to.......

解决办法:

$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。

3. git操作需要输入密码

原因

公密未找到

解决

上传id_pub.rsakeydir并改为'gitosis帐号.pub'形式,如miao.pub。扩展名.pub不可省略

4. ERROR:gitosis.serve.main:Repository read access denied

原因

gitosis.conf中的memberskeydir中的用户名不一致,如gitosis中的members = foo@bar,但keydir中的公密名却叫foo.pub

解决

使keydir的名称与gitosismembers所指的名称一致。
改为members = foo 公密名称改为foo@bar.pub

添加linux内核到git服务器

四. 添加内核代码到git服务器

1. 服务器端

enzo@GitSer:~/gitosis-admin$ cat gitosis.conf

[gitosis]

 

[group gitosis-admin]

members = enzo@GitSer

writable = gitosis-admin

 

[group gittest]

writable = gittest

members = enzo@GitSer enzo@debian

 

[group linux]

writable = linux

members = enzo@GitSer enzo@debian

#git remote add origin git@GitSer:gitosis-admin

#git push origin master

 

2.客户端

#git push git@172.16.10.251:linux.git master

五.建立交叉编译环境

1. scp命令使用

复制文件:

1)将本地文件拷贝到远程
               scp 
文件名 用户名@计算机IP或者计算机名称:远程路径 
2)从远程将文件拷回本地
               scp 
用户名@计算机IP或者计算机名称:文件名 本地路径

复制目录:
1)将本地目录拷贝到远程
               scp -r
目录名   用户名@计算机IP或者计算机名称:远程路径
2)从远程将目录拷回本地
               scp -r  
用户名@计算机IP或者计算机名称:目录名 本地路径

2.更换debian默认shellbash

Debian安装后默认的shelldash,原因dash 更小,且运行更快,还与 POSIX 兼容。
但问题是目前网上有大片的用户由于 shell 的更换而致使脚本出错,毕竟现有的很多脚本都不是 100% POSIX 兼容。如需将默认的 shell 改回 bash,可以在执行 sudo dpkg-reconfigure dash 后,选择 no

3.安装2.6内核交叉编译器

交叉编译器被放在/home/enzo/tools目录下

enzo@GitSer:~/tools$ ls

arm-2010.09-50-arm-none-linux-gnueabi.bin                        cross-2.95.3.tar.bz2

切换到root用户,安装

#sudo su

#./arm-2010.09-50-arm-none-linux-gnueabi.bin

 

4.安装2.4内核交叉编译器

建立文件夹/usr/local/arm,最好安装在此目录下,以防以后编译代码出问题

#mkdir /usr/local/arm

# tar jxvf cross-2.95.3.tar.bz2 -C /usr/local/arm/

1.   将交叉编译环境路径添加到系统PATH

if [ "`id -u`" -eq 0 ]; then

  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

else

  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/CodeSourcery/Sourcery_G++_Lite/bin:/usr/local/arm/2.95.3/bin"

fi

 

7. 检查环境变量是否设置成功:

i)检查2.6编译器

enzo@GitSer:~$ arm-none-linux-gnueabi-gcc -v

Using built-in specs.

COLLECT_GCC=arm-none-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/usr/local/CodeSourcery/Sourcery_G++_Lite/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper

Target: arm-none-linux-gnueabi

Configured with:

……

……

gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50)

ii)检查2.4编译器

enzo@GitSer:~$ arm-linux-gcc -v

Reading specs from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/specs

gcc version 2.95.3 20010315 (release)

 

阅读(6864) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~