কোনও চিত্র ঝলকানোর আগে সফ্টওয়্যার আপডেট, আপগ্রেড এবং ইনস্টল করা কি সম্ভব?


28

চিত্রগুলিতে চালিত সফ্টওয়্যার আপগ্রেড করতে আমাদের সীমিত এসডি রাইটিং চক্রটি ব্যবহার করা নির্বোধ বলে মনে হচ্ছে। এসডি কার্ডে কোনও চিত্র ফ্ল্যাশ করার আগে আমরা কী সফ্টওয়্যারটি আপগ্রেড করতে এবং নতুন সফ্টওয়্যার ইনস্টল করতে পারি?

উত্তর:


31

হাঁ

উত্তরটি সর্বদা হ্যাঁ, ঠিক আছে, কীভাবে কাজ করতে কিছুক্ষণ সময় লাগে!

কঠিন পথে

আমি এটি ব্রাইটবক্স ডট কম দ্বারা সরবরাহিত কোনও ভিপিএসে চালিয়ে যাব । আমি একটি ন্যানো সার্ভার (2 সিপিইউস, 512 এমবি র‌্যাম, 20 গিগাবাইট ডিস্ক স্পেস) এবং একটি উবুন্টু যথার্থ 12.04 এলটিএস সার্ভার চিত্র ব্যবহার করেছি। এটি ইসি 2 বা লিনোডের সমতুল্য এবং অবশ্যই আপনার হোম লিনাক্স মেশিনে কাজ করা উচিত। আমি এখন এটি আমার (x86) আর্ক ইনস্টলেশনতে পরীক্ষা করেছি, তবে জানি এটি উবুন্টু 10.04 এলটিএসে কাজ করে না কারণ কিছু প্যাকেজ খুব পুরানো।

আপনার সিস্টেম প্রস্তুত - দেবিয়ান / উবুন্টু

আপনার নিজস্ব সিস্টেমটি আপ টু ডেট রয়েছে তা নিশ্চিত করুন।

$ sudo apt-get update
$ sudo apt-get upgrade

কিছু নতুন সফ্টওয়্যার ইনস্টল করুন

$ sudo apt-get install binfmt-support qemu qemu-user-static unzip

qemuএকটি এআরএম এমুলেটর, এবং qemu-user-staticএবং binfmt-supportএআরএম কার্নেল এমুলেট ছাড়া এআরএম এক্সেকিউটেবল চালানোর জন্য আমাদের পারেন। (কিভাবে শীতল হয়!?!)

আপনার সিস্টেম প্রস্তুত হচ্ছে - খিলান

আমি qemuআর্চ সংগ্রহস্থলগুলিতে কোনও স্ট্যাটিকালি লিঙ্ক পাই না , সুতরাং আমাদের উত্স থেকে সংকলন করতে হবে।

  1. Http://git.savannah.gnu.org/cgit/qemu.git থেকে সর্বশেষ প্রকাশটি ডাউনলোড করুন
  2. আনজিপ করে চালান

    ./configure --disable-kvm --target-list=arm-linux-user --static

  3. ব্যবহার করে makeইনস্টল করুন এবং ব্যবহার করে ইনস্টল করুন sudo make install

  4. নিম্নলিখিত হিসাবে চালান root

    echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register

    echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register

সতর্কতা: আপনাকে অনলাইনের মতো স্বেচ্ছাসেবক কমান্ডগুলি চালানো উচিত নয় root- এগুলি qemu-binfmt-conf.shএআরএম সিপু টাইপের আওতায় নেওয়া হয়েছিল । দয়া করে এই ফাইলটি থেকে আদেশগুলি সরিয়ে নিয়ে সেগুলি চালান run

চিত্রটি ডাউনলোড এবং আনজিপ করুন

Raspberrypi.org এ যান এবং আপনার ইমেজটি ডাউনলোড করুন। এটি আনজিপ করুন এবং .imgকোথাও দরকারী ফাইলটি সংরক্ষণ করুন ।

$ sudo mkdir -p /images/debian-squeeze
$ sudo wget "http://files.velocix.com/c1410/images/debian/6/debian6-19-04-2012/debian6-19-04-2012.zip" -O "/images/debian-squeeze.zip"
$ sudo unzip "/images/debian-squeeze.zip" -d /images/debian-squeeze
$ sudo rm /images/debian-squeeze.zip

সঠিক পার্টিশনটি সন্ধান করুন

.imgবুট পার্টিশন সহ 3 পার্টিশন, উপস্থিত থাকবে।

$ cd /images/debian-squeeze/debian6-19-04-2012/
$ fdisk -lu debian6-19-04-2012.img
Disk debian6-19-04-2012.img: 1949 MB, 1949999616 bytes
4 heads, 32 sectors/track, 29754 cylinders, total 3808593 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee283

                 Device Boot      Start         End      Blocks   Id  System
debian6-19-04-2012.img1            2048      155647       76800    c  W95 FAT32 (LBA)
debian6-19-04-2012.img2          157696     3414015     1628160   83  Linux
debian6-19-04-2012.img3         3416064     3807231      195584   82  Linux swap / Solaris

আমাদের লিনাক্স পার্টিশনের অফসেট জানতে হবে, এক্ষেত্রে এটি 157696সেক্টর এবং বুট পার্টিশন যা 2048খাতগুলিতে রয়েছে। প্রতিটি সেক্টর 512 বাইট, তাই মূল অফসেটটি 157696*512=80740352বাইট এবং বুট অফসেট হয় 2048*512=1048576

লুপব্যাক ডিভাইস হিসাবে চিত্রটি মাউন্ট করুন

এর পরে, আমাদের একটি ফাইল সিস্টেম হিসাবে চিত্রটি মাউন্ট করতে হবে। এটি একটি লুপব্যাক ডিভাইস ব্যবহার করে করা যেতে পারে। mountকোন পার্টিশন মাউন্ট করতে হবে এবং কোথায় তা জানাতে আমরা পূর্ববর্তী বিভাগ থেকে অফসেট ব্যবহার করি । এই আদেশগুলির ক্রমটি গুরুত্বপূর্ণ।

$ sudo mount -o loop,offset=80740352 "/images/debian-squeeze/debian6-19-04-2012/debian6-19-04-2012.img" /mnt
$ sudo mount -o loop,offset=1048576 "/images/debian-squeeze/debian6-19-04-2012/debian6-19-04-2012.img" /mnt/boot

ফাইল সিস্টেম প্রস্তুত হচ্ছে।

আমরা chrootআমাদের ফাইল সিস্টেমে প্রবেশের জন্য প্রায় প্রস্তুত এবং নতুন সফ্টওয়্যার ইনস্টল করা শুরু করি। প্রথমত, আমাদের অবশ্যই আমাদের চিত্রটিতে এমুলেটরটি ইনস্টল করতে হবে, কারণ এটি ব্যবহার করার পরে এটি উপলব্ধ হবে না chroot

Debian / Ubuntu-

$ sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/

আর্চ লিনাক্স

$ sudo cp /usr/local/bin/qemu-arm /mnt/usr/local/bin/

সমস্ত হোস্ট সিস্টেম

আমাদের সিস্টেমের অন্যান্য কয়েকটি অংশেও অ্যাক্সেস সরবরাহ করতে হবে।

$ sudo mount --rbind /dev     /mnt/dev
$ sudo mount -t proc none     /mnt/proc
$ sudo mount -o bind /sys     /mnt/sys

chroot

আমরা করেছি! chrootদূরে ...

$ sudo chroot /mnt

আপনি এখন আপনার রাস্পবেরি পাইতে রয়েছেন তবে পরিষেবাগুলি চলছে না ইত্যাদি সতর্কতা অবলম্বন করুন আপনি রুট!

সফ্টওয়্যার আপডেট / ইনস্টল করুন - ডেবিয়ান চিত্র

সফ্টওয়্যার আপডেট করার জন্য, আমরা ব্যবহার করি apt-get

 # apt-get update
 # apt-get upgrade

আপনি apt-get installযথারীতি ব্যবহার করে সফ্টওয়্যার ইনস্টল করতে পারেন ।

আপডেট / ইনস্টল সফ্টওয়্যার - খিলান চিত্র

সফ্টওয়্যার আপডেট করার জন্য, আমরা ব্যবহার করি pacman

 # pacman -Syu

আপনি pacman -Sযথারীতি ব্যবহার করে সফ্টওয়্যার ইনস্টল করতে পারেন ।

উল্লেখ্য আপনি চালাতে পারেন pacmanনির্দেশাবলী অনুসরণ করে স্থানীয়ভাবে আমি কিভাবে আমার নেটিভ চালানো pacmanবিরুদ্ধে একটি ইমেজ মাউন্ট?

প্রস্থান করা হচ্ছে

আপনি + chrootব্যবহার করে প্রস্থান করতে পারেন এবং চালিয়ে সিস্টেমটিকে আনমাউন্ট করতে পারেন - আপনাকে প্রতিটি মাউন্ট পয়েন্ট পৃথকভাবে আনমাউন্ট করতে হবে ..CtrlDsudo umount /mnt

আপনি ভাগ করা উচিত নয় qemu-user-staticথেকে /usr/binবা qemu-armথেকে /usr/local/binRPi উপর, তারপর ইমেজ চমকিত হওয়ার জন্য প্রস্তুত হয়।

চূড়ান্ত শব্দ

এটি কিছুটা দীর্ঘ এবং ক্লান্তিকর, তবে এটি একবার করুন এবং আপনি কীভাবে এই সমস্ত কাজ করে তা বোঝা শিখবেন!

সর্বশেষ চিত্রগুলিতে নোট করুন

সর্বশেষ চিত্রগুলিতে এটি চালানোর চেষ্টা করার সময়, আপনি একটি ত্রুটি পাবেন

qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)

এই ত্রুটিটি ঠিক করতে, কেবল /etc/ld.so.preloadফাইলের বিষয়বস্তু সম্পর্কে মন্তব্য করুন

সহজ উপায় - piimg

আপনার জন্য অনেক কিছু করার জন্য আমি একটি ইউটিলিটিতে কাজ শুরু করেছি। একে পাইমগ বলা হয় এবং github.com/alexchamberlain/piimg এ পাওয়া যায় ।

এখনও অবধি এটি চালিয়ে আপনার জন্য এসডি কার্ড মাউন্ট করতে পারে

piimg mount /images/debian-squeeze/debian6-19-04-2012/debian6-19-04-2012.img /mnt

এবং দৌড়ে আবার এটিকে আনমাউন্ট করুন

piimg umount /mnt

আপনার কেবল ইনস্টল qemuএবং chrootদূরে প্রয়োজন।

অগ্রাহ্যকারী আমি, অ্যালেক্স চেম্বারলইন, এর প্রধান বিকাশকারী piimg। যেমন, আমি piimgঅন্যান্য পদ্ধতির সাথে ব্যবহারের প্রতি পক্ষপাতদুষ্ট হতে পারি ।

তথ্যসূত্র

  1. আপনার ডেস্কটপ পিসিতে এআরএম লিনাক্স চালানো: বিদেশী ক্রুট উপায়

  2. ক্রুট করার চেষ্টা করার সময় 'অবৈধ নির্দেশ' পাওয়া


সুতরাং কেউ কি আসলে এটি পরীক্ষা করেছে?
ফিনিউ করুন

@ ফিনিউ আমার ধারণা জিভিংস এখন এটি পরীক্ষা করেছে।
অ্যালেক্স চেম্বারলাইন

1
আপনি ব্যবহার করতে পারেন sudo kpartx -av rpi_pisces_mate_r1.img, যা পার্টিশন প্রদর্শন করবে। বৃহত্তম ব্যবহার করুন এবং এটি মাউন্ট করুন, যেমন sudo mount /dev/mapper/loop0p3 /mnt/tmp
এলমিচা

@ অ্যালেক্সচ্যাম্বারলাইন: আপনি কি ব্রাইটবক্স সার্ভারে আসলে এটি কাজ করে গেছেন? আমি এটি আমার হোম পিসিতে সফলভাবে পরীক্ষা করেছি কিন্তু যখন আমি ব্রাইটবক্সে চেষ্টা করেছি তখন আমি ক্রুট করতে পারিনি এবং আমি চেয়েছিলাম যদি এটি ভার্চুয়ালাইজেশনের শীর্ষে কার্যকরভাবে ভার্চুয়ালাইজেশন পাওয়ার চেষ্টা করছিল। অবশ্যই আমিও কিছু ভুল করে থাকতে পারি, তবে আমি ভেবেছিলাম পুরোপুরি হাল ছাড়ার আগেই এটি অনুসন্ধান করা উচিত! একটি দুর্দান্ত টিউটোরিয়াল জন্য ধন্যবাদ।
DrAl

কীভাবে নুবস ডিস্ট্রো ক্রুট করবেন তা অন্তর্ভুক্ত করার জন্য এটি আপডেট করা সম্ভব? এই জাতীয় ডিসট্রোতে কীভাবে ক্রুট করা যায় তা শিখার জন্য
সুহাইব

0

এটি ঘূর্ণায়মান হওয়ার সাথে সাথে এখানে একটি দ্রুত স্ক্রিপ্ট আমি একত্রিত করেছি একটি চিত্র ফাইলের প্রথম লিনাক্স পার্টিশনটিকে নিজের ঝুঁকিতে ব্যবহার করুন। এটি পরিচালনা / ইনপুট বৈধতা কোন ত্রুটি আছে

#!/bin/bash

# This script is designed to mount
# the first Linux filesystem
# in the partition table of the
# image handed to it

USAGE="$0 <image name> <mount point>"
IMAGE=$1
MOUNTPT=$2

OFFSET=`fdisk -lu $IMAGE | grep -m 1 Linux$ | awk '{ print $2 *512 }'`

echo "Executing as $USER: mount -o loop,offset=$OFFSET $IMAGE $MOUNTPT"
mount -o loop,offset=$OFFSET $IMAGE $MOUNTPT

দুর্ভাগ্যক্রমে চিত্রগুলি সমস্ত এআরএম ভিত্তিক, আপনি এগুলিতে সরাসরি কোনও কিছুই চালাতে পারবেন না। এগুলিকে আপডেট করা কিছুটা কৌশলযুক্ত ... আপনার হোস্ট সিস্টেমটি যদি ভিত্তিক ভিত্তিতে প্রস্তুত থাকে তবে তা সম্ভব।
ফ্রেড

-2

আমি আমার প্রধান পিসির মাধ্যমে পিআইয়ের জন্য কেবল স্টাফ তৈরির জন্য কোনও পদ্ধতির সন্ধানের নির্দেশনাগুলি অনুসরণ করেছি, এটি খুব সহজ ছিল, একবার যখন আপনি আঁকিয়ে থাকেন আপনি চিত্রটি এমনভাবে ব্যবহার করতে পারেন যেন এটি একটি লাইভ সিস্টেম এবং সমস্তটি ব্যবহার করে নেটিভ অ্যাপ্লিকেশন তেহ পাইতে, সুতরাং ক্রস সংকলক ইনস্টল করার দরকার নেই :)

আমার একটি প্রশ্ন আছে যদিও, ক্রুটটি সেটআপ করার সময়, ক্রুট সঠিকভাবে কাজ করার জন্য আমাদের কয়েকটি পার্টিশন মাউন্ট করতে হবে:

$ sudo mount --rbind /dev     /mnt/dev
$ sudo mount -t proc none     /mnt/proc
$ sudo mount -o bind /sys     /mnt/sys

এগুলি আমরা কীভাবে সঠিকভাবে আনমাউন্ট করব? তাদের মাউন্ট রেখে যা আপনাকে .img ফাইলটি আনমাউন্ট করা থেকে বিরত রাখে, এখানে যে কোনও সহায়তা প্রশংসিত হবে। আমি -f বিকল্পটি চেষ্টা করে দেখেছি, মাউন্ট করা কিছু অন্তর্নিহিত আছে কিনা তা নিশ্চিত নই।

আমার নিজের প্রশ্নের উত্তর দিয়ে https://bugzilla.redhat.com/show_bug.cgi?id=194342 পোস্টের শেষে দ্বিতীয় পদ্ধতিটি আমার জন্য একটি সুডো পরিবর্তন নিয়ে কাজ করেছে।

cat /proc/mounts | awk '{print $2}' | grep "^$MOUNTPOINT" | sort -r | xargs sudo umount

স্পষ্টতই আপনার ক্রুট মাউন্ট পয়েন্টের পথে UN MOUNTPOINT পরিবর্তন করুন (উপরের টিউটোরিয়ালটিতে / mnt ইমেজ ফাইলে rootfs সহ ২ য় পার্টিশন)। এই পদ্ধতিটি ব্যবহার করে আপনি ক্রুটের মাধ্যমে মাউন্ট করা লুপব্যাক ডিভাইস এবং অন্য কোনও ডিভাইস থেকে img ফাইলটিকে সম্পূর্ণ আনমাউন্ট করে।

cat /proc/mounts |awk '{print $2}'|grep $CHROOTMOUNT |sort -r|xargs sudo umount
sudo umount $CHROOTMOUNT

আমি নিশ্চিত না যে এটি সত্যই প্রশ্নের উত্তর দিয়েছে। আপনি কীভাবে চিত্রটিতে ক্রুটিং করছেন বা কীভাবে আপনি এতে সফটওয়্যার ইনস্টল করছেন তা বর্ণনা করেন না। এছাড়াও এটি নতুন প্রশ্ন জিজ্ঞাসা করার জায়গা নয়।
জিভিংস

আমি ওপি তার প্রশ্নের মূল হ্যাঁ উত্তর হিসাবে একই পদ্ধতি ব্যবহার করছি। যেহেতু আমার ইমেজটি আনমাউন্ট করার ক্ষেত্রে একটি সমস্যা ছিল, এটি সত্যই এই প্রশ্নটির সেরা জায়গা এবং আমার নিজের উত্তর উত্তর।
রেজিগি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.