Madsonic: ติดตั้ง Music Streaming Server บน Raspberry Pi

ในบทช่วยสอนนี้ฉันจะอธิบายวิธีการติดตั้งเซิร์ฟเวอร์สตรีมเพลง (บ้าโซนิค) ใน ราสเบอร์รี่ Pi กับ ArchLinux ARM.
หากต้องการดูบทแนะนำเกี่ยวกับวิธีการติดตั้ง Arch ลินุกซ์ บน Raspberry Pi คุณสามารถดูสิ่งนี้ได้ เสา.

ขอแนะนำว่าอย่าติดตั้งสภาพแวดล้อมแบบกราฟิกบน Raspberry Pi เนื่องจากใช้หน่วยความจำมาก แต่จะดีกว่าถ้าใช้การเชื่อมต่อ ssh เสมอ

คุณสมบัติหลักของ madsonic มีดังต่อไปนี้:

  • เว็บอินเตอร์เฟสที่ใช้งานง่าย
  • รองรับการแปลงรหัสเป็นรูปแบบต่างๆ (เช่น FLAC> mp3)
  • มีไคลเอนต์สำหรับ Android และ iOS

จำกัด RAM สำหรับ GPU และการสร้างพื้นที่แลกเปลี่ยน (SWAP)

ขั้นตอนต่อไปนี้เป็นทางเลือก แต่ขอแนะนำให้ทำเพื่อหลีกเลี่ยงไม่ให้ราสเบอร์รี่มี RAM เหลือน้อย

เซิร์ฟเวอร์ madsonic ทำงานภายใต้ Java ดังนั้นบน RAM 256MB Raspberry Pi จึงใช้ RAM ประมาณ 50% ในกรณีนี้ฉันแนะนำให้สร้างไฟล์ พื้นที่แลกเปลี่ยน (swap) เพื่อป้องกันไม่ให้ Raspberry Pi หน่วยความจำหมด

1. เราสร้างไฟล์ที่จะใช้เป็นพื้นที่แลกเปลี่ยนไฟล์และกำหนดพื้นที่ 512 MB

# fallocate -l 512M / swapfile

2. เรากำหนดสิทธิ์ในการอ่านและเขียนให้กับไฟล์

# chmod 600 / swapfile

3. เราจัดรูปแบบเป็น swap

# mkswap / swapfile

3. เราเปิดใช้งานการแลกเปลี่ยน

# swapon / swapfile

4. เราเพิ่มบรรทัดต่อไปนี้ในไฟล์ / etc / fstab เพื่อติดตั้ง swap โดยอัตโนมัติ

/ swapfile ไม่มีค่าเริ่มต้นการแลกเปลี่ยน 0 0

5. เราแก้ไขไฟล์ /etc/sysctl.d/99-sysctl.conf เพื่อให้การเขียน swap ทำได้ในกรณีที่เรามี RAM น้อยเท่านั้น เราเพิ่มบรรทัดต่อไปนี้

vm.swappiness = 10

6. ใช้คำสั่ง ฟรี -h เราตรวจสอบจำนวน RAM ที่เรามี
สตรีมมิ่งแรม


7. เราแก้ไขไฟล์ /boot/config.txt ขึ้นอยู่กับรุ่น Raspberry Pi ที่เรามีเพื่อ จำกัด จำนวน RAM ที่จัดสรรให้กับกราฟิก

ระวัง! หากเราใส่ RAM น้อยเกินไปสำหรับ GPU Raspberry จะไม่เริ่มทำงานและเราจะต้องแนะนำ SD Card ให้กับคอมพิวเตอร์เพื่อซ่อมแซมไฟล์ /boot/config.txt

เราจะจัดสรร RAM 64MB สำหรับกราฟิก

  • สำหรับ Raspberry Pi รุ่น A (พร้อม RAM 256 MB) เราปรับเปลี่ยนบรรทัด gpu_mem_256 = 128 โดย gpu_mem_256 = 64
  • สำหรับ Raspberry Pi รุ่น B (พร้อม RAM 512 MB) เราปรับเปลี่ยนบรรทัด gpu_mem_512 = 316 โดย gpu_mem_512 = 64

โอเวอร์คล็อก (ไม่บังคับ)

ฉันแนะนำให้ใช้แหล่งทำความเย็นเพื่อป้องกันราสเบอร์รี่จากความร้อนสูงเกินไป

เราจะแก้ไขไฟล์ /boot/config.txt และเราจะยกเลิกการใส่เครื่องหมายของตัวเลือกการโอเวอร์คล็อกบางส่วนที่พบในตอนท้ายของไฟล์

##Modest
arm_freq=800
core_freq=300
sdram_freq=400
over_voltage=0
##Medium
#arm_freq=900
#core_freq=333
#sdram_freq=450
#over_voltage=2
##High
#arm_freq=950
#core_freq=450
#sdram_freq=450
#over_voltage=6
##Turbo
#arm_freq=1000
#core_freq=500
#sdram_freq=500
#over_voltage=6

ฉันใช้ตัวเลือก Modest (ความเร็ว 800) ด้วยความเร็วนี้ของฉัน ราสเบอร์รี่ Pi มันทำงานได้ดี

การติดตั้ง Madsonic

Madsonic อยู่ใน ที่เก็บผู้ใช้ Arch Linux (AUR) ดังนั้นเราจึงจำเป็นต้องมีแพ็คเกจพื้นฐานเพื่อให้สามารถคอมไพล์โปรแกรม AUR ได้

เราติดตั้งแพ็คเกจที่จำเป็น:

# pacman -S wget curl ฐานพัฒนา yajl java-runtime libcups

เราสร้างไดเร็กทอรีสำหรับการคอมไพล์และดาวน์โหลด madsonic จาก AUR.

$ mkdir สร้าง $ cd สร้าง $ wget https://aur.archlinux.org/packages/ma/madsonic/madsonic.tar.gz

เราแตกไฟล์และแก้ไขไฟล์ PKGBUILD เพื่อเพิ่มการรองรับโปรเซสเซอร์ ARM เรามองหาเส้น arch = ('i686' 'x86_64') และเราเพิ่ม
'armv6h'.

$ tar zxf madsonic.tar.gz $ cd madsonic $ nano PKGBUILD ... arch = ('i686' 'x86_64' 'armv6h')

เราใช้คำสั่ง แต่งหน้ากก เพื่อดาวน์โหลดและรวบรวมโค้ด madsonic อาจใช้เวลานาน อดทน

$ makepkg -g >> PKGBUILD $ makepkg

คำสั่ง แต่งหน้ากก มันจะสร้างไฟล์ที่มีนามสกุล. xz เราสามารถติดตั้งไฟล์นี้โดยใช้ pacman

# pacman -U madsonic-5.0.3860-1-armv6h.pkg.tar.xz

การติดตั้ง Java Oracle สำหรับ ARM

หลังจากติดตั้ง madsonic ฉันสังเกตเห็นว่า openjdk ใช้โปรเซสเซอร์เกือบ 100% ดังนั้นจึงแสดงถึงประสิทธิภาพที่ไม่ดีของ Raspberry Pi

วิธีแก้ปัญหานี้คือการใช้สถาปัตยกรรม Oracle Java สำหรับ ARM สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้คุณสามารถอ่านบทความ oracle ที่แสดงเกณฑ์มาตรฐาน Oracle Java เทียบกับ OpenJDK ได้ในหัวข้อนี้ ลิงค์.

เราดาวน์โหลด Java Oracle สำหรับสถาปัตยกรรม ARM

wget --no-cookies \ --no-check-certificate --header "Cookie: gpw_e24 = http% 3A% 2F% 2Fwww.oracle.com% 2F; \ oraclelicense = accept-securebackup-cookie" \ "http: / /download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-arm-vfp-hflt.tar.gz "

แตกไฟล์ในพา ธ / opt / java-oracle /

 # mkdir / opt / java-oracle # tar -zxf jdk-7u55-linux-arm-vfp-hflt.tar.gz -C / opt / java-oracle

เราสร้างตัวแปรสภาพแวดล้อม Java Home และสำรองไฟล์ปฏิบัติการ OpenJDK Java

# JHome = / opt / java-oracle / jdk1.7.0_55 # test -L / usr / bin / java && mv /usr/bin/java[,.backup}

เราสร้างลิงก์สัญลักษณ์สำหรับไปยัง ชวา y จาวัค.

# ln -sf /opt/java-oracle/jdk1.7.0_55/bin/java / usr / bin / java # ln -sf /opt/java-oracle/jdk1.7.0_55/bin/javac / usr / bin / javac

ตอนนี้เราสามารถทดสอบการติดตั้ง java ด้วยคำสั่ง java -version

[eroland @ alarmpi ~] $ java -version เวอร์ชัน java "1.7.0_55" Java (TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot (TM) Client VM (build 24.55-b03, mixed mode)

เราแก้ไขไฟล์คอนฟิกูเรชัน madsonic เพื่อให้ใช้ Java Oracle ไม่ใช่ Java OpenJDK

# นาโน /var/madsonic/madsonic.sh

และเราปรับเปลี่ยนบรรทัด JAVA_HOME เพื่อให้เป็นดังนี้:

JAVA_HOME = / opt / java-oracle / jdk1.7.0_55 / jre: / usr / lib / jvm / java-7-openjdk

การกำหนดค่า Madsonic

การกำหนดค่า madsonic เสร็จสิ้นในไฟล์ /var/madsonic/madsonic.shสิ่งแรกที่เราทำคือสนับสนุน

cp /var/madsonic/madsonic.sh[,.backup}

ในไฟล์นี้คุณสามารถแก้ไขพอร์ตที่ madsonic จะใช้ (โดยค่าเริ่มต้นจะใช้พอร์ต 4040) เส้นทางของโฟลเดอร์ที่จะเก็บเพลง ฯลฯ

เราจะเพิ่มไฟล์ ฮาร์ดไดรฟ์ภายนอก เชื่อมต่อด้วย USB ซึ่งเราจะใส่เพลงที่จะเล่น

หากฟอร์แมตฮาร์ดไดรฟ์ NTFSคุณต้องติดตั้งแพ็คเกจ ntfs-3g เพื่อติดตั้งดิสก์

# pacman -S ntfs-3g

เราสร้างโฟลเดอร์ที่จะติดตั้งฮาร์ดไดรฟ์และให้สิทธิ์ที่จำเป็น

# mkdir / mnt / ข้อมูล # chmod 775 / mnt / Data

เราได้รับจุดเชื่อมต่อของไฟล์ ฮาร์ดไดรฟ์

$ ls -l / dev / disk / by-label / ทั้งหมด 0 lrwxrwxrwx 1 รูท 10 ธันวาคม 31 1969 ข้อมูล -> ../../sda2 lrwxrwxrwx 1 รูท 10 ธ.ค. 31 1969 PS3 -> ../../ sda1

ในกรณีของฉันฉันสนใจดิสก์ที่มีป้ายกำกับข้อมูลอยู่ใน / dev / sda2

อย่างไรก็ตามไม่แนะนำให้ใช้ฉลากเพื่อติดแผ่นดิสก์เนื่องจากหากฉลากเปลี่ยนไปจะไม่สามารถติดตั้งแผ่นดิสก์ได้

เราได้รับตัวระบุเฉพาะ (UUID) จากฮาร์ดไดรฟ์ของเรา

ls -l / dev / ดิสก์ / by-uuid /

เราจะได้ผลลัพธ์คล้ายกับสิ่งนี้:

[eroland @ alarmpi ~] $ ls -l / dev / disk / by-uuid / total 0 lrwxrwxrwx 1 root root 10 ธ.ค. 31 1969 19F4-1917 -> ../../sda1 lrwxrwxrwx 1 รูท 15 ธ.ค. 31 1969 2300 -4E18 -> ../../mmcblk0p1 lrwxrwxrwx 1 รูท 10 ธ.ค. 31 1969 58F6AA78F6AA55D2 -> ../../sda2 lrwxrwxrwx 1 รูท 15 ธ.ค. 31 1969 b471cde8-2a15-44e7-acce-e9 --a2 .. / mmcblk54511p6

เราเขียน UUID ของฮาร์ดไดรฟ์ของเรา (ในกรณีนี้ 58F6AA78F6AA55D2)

เราเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์ / etc / fstab

UUID = 58F6AA78F6AA55D2 / mnt / ข้อมูล ntfs-3g ค่าเริ่มต้น 0 0
อย่าลืมเปลี่ยน UUID สำหรับสิ่งที่ได้รับจากคำสั่งด้านบน

เรารีสตาร์ท Raspberry Pi ของเราและฮาร์ดไดรฟ์จะติดตั้งโดยอัตโนมัติ

ในที่สุดเราก็เริ่มบริการ madsonic:

# systemctl เริ่ม madsonic.service

หากเราต้องการให้บริการเริ่มต้นโดยอัตโนมัติทุกครั้งที่ระบบโหลด

# systemctl เปิดใช้งาน madsonic.service

และ voila เรามีเซิร์ฟเวอร์สตรีมเพลงของเรา

เมื่อบริการของ บ้าโซนิคเราสามารถป้อนจากเบราว์เซอร์ที่เราต้องการไปยังที่อยู่ IP ของ Raspberry Pi ของเราพร้อมกับพอร์ต 4040 ในกรณีของฉันคือ 192.168.17.1:4040 และเราป้อนโดยใช้ข้อมูล ผู้ใช้ = ผู้ดูแลระบบ รหัสผ่าน = ผู้ดูแลระบบ.

บ้าโซนิค

ภายในเว็บอินเตอร์เฟสเราสามารถเพิ่มผู้ใช้ใหม่และเปลี่ยนรหัสผ่านเริ่มต้นได้

นี่เป็นการมีส่วนร่วมครั้งแรกของฉันฉันหวังว่าคุณจะชอบมัน

Fuentes:
http://d.stavrovski.net/blog/post/set-up-home-media-streaming-server-with-madsonic-archlinux-and-cubieboard2
http://www.techjawab.com/2013/06/how-to-setup-mount-auto-mount-usb-hard.html


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   x11tete11x dijo

    ฉันไม่มีตะไบ แต่ถ้าเป็นเซิร์ฟเวอร์สตรีมมิ่งที่บ้าน xD คุณเคยใช้ mediatomb หรือไม่ถ้าเป็นเช่นนั้นคุณสามารถบอกอะไรฉันได้บ้างเมื่อเทียบกับอันนี้ฉันใช้ mediatomb เมื่อมองแวบแรกอินเทอร์เฟซ madsonic ให้ xD mediatomb เป็นพันรอบ สิ่งที่ฉันสนใจมากก็คือการรู้ว่าคุณสามารถสตรีมผ่าน "WAN" ได้หรือไม่และถ้าเป็นผ่านโปรโตคอลที่ปลอดภัยดีกว่าเพราะ mediatomb อนุญาตให้จัดการผ่านเว็บ แต่ไม่ใช่ด้วย https และ (จนถึงตอนนี้ฉันพบเฉพาะไคลเอนต์สำหรับ Android) การสตรีมด้วย mediatomb ผ่าน WAN (ถ้าจากโทรศัพท์มือถือในขณะที่อยู่ทุกที่ฉันสามารถเล่นเพลงจากเซิร์ฟเวอร์ที่บ้านของฉันได้) เนื่องจากฉันสงสัยในความปลอดภัยของโปรโตคอลฉันจึงใส่รหัสผ่านที่ไม่ให้ความสัมพันธ์กับรหัสที่ฉันมักใช้และเปิดใช้งาน mediatomb เดียวกัน ของสิทธิ์ดังนั้นหากมีคนเข้าถึงพวกเขาจะไม่สามารถสัมผัสอะไร xD

    1.    เอโรแลนด์ dijo

      สวัสดีฉันไม่ได้ใช้ mediatomb เกี่ยวกับคำถามของคุณแน่นอนว่าคุณสามารถใช้ madsonic ผ่าน WAN ได้ฉันใช้ madsonic ผ่าน WAN และมันก็ใช้ได้ดีสำหรับฉัน Madsonic อนุญาตให้ใช้ https คุณเพียงแค่ต้องเปิดใช้งานในไฟล์กำหนดค่าของคุณ: madsonic_https_port = 8443 และ voila 🙂
      เกี่ยวกับแอปพลิเคชั่นสำหรับ Android ฉันใช้การโทรแบบอัลตราโซนิคซึ่งดีมากช่วยให้สามารถจัดเก็บเพลงในแคชเพื่อฟังโดยไม่ต้องเชื่อมต่อ xD

      อาศิรพจน์

    2.    Ronal dijo

      เพื่อนคุณมีประสบการณ์อย่างไรกับ Arch ARM? ฉันเป็นผู้ใช้ Arch .. ติดตั้ง rasbian แต่ฉันเบื่อกับปัญหาเกี่ยวกับ repos ฉันต้องการ Arch แล้วแพ็คเกจที่ไม่มีใน repo อย่างเป็นทางการล่ะ ตัวอย่างเช่นแพ็คเกจ AUR สามารถคอมไพล์ได้หรือไม่?

  2.   แทนแร็กซ์ dijo

    บทความน่าสนใจมาก!
    ฉันได้ทำการค้นหาอย่างรวดเร็วเพื่อดูลูกค้าของคุณบน Android และฉันเห็นว่าได้รับเงินแล้ว มีทางเลือกอื่นฟรีหรือไม่?

    1.    เอโรแลนด์ dijo

      สวัสดีถ้ามีทางเลือกฟรีฉันใช้อัลตราโซนิก
      https://play.google.com/store/apps/details?id=com.thejoshwa.ultrasonic.androidapp&hl=es

      อาศิรพจน์

  3.   MSX dijo

    Subsonic เป็นสัตว์ร้ายและไม่ใช้มูลของ Java ถ้าฉันไม่เข้าใจผิด ownCloud ยังสามารถสตรีมเสียงและวิดีโอได้และมีน้ำหนักเบามาก - อย่างน้อยเมื่อเทียบกับการใช้ JVM และแอปพลิเคชันอื่น ๆ ที่อยู่ด้านบน

    Java ต้องตาย - เช่นเดียวกับ Flash

    1.    เอโรแลนด์ dijo

      อันที่จริง ownCloud มีบริการสตรีมขั้นพื้นฐานข้อดีที่ฉันเห็นสำหรับ subsonic คือความเป็นไปได้ในการแปลงรหัสในกรณีที่พวกเขามีเพลง flac จำนวนมากเช่น และคุณก็พูดถูกเช่นกันการใช้ java เป็นโปรแกรมที่หนักหน่วงอย่างไรก็ตามตอนนี้ฉันไม่มีปัญหาในการใช้ Raspberry RAM 256MB

      1.    Eliotime3000 dijo

        OpenJDK 7 (ไม่ใช่ 6 ตามที่ Oracle แสดง) มีเสถียรภาพมากกว่าในแง่ของประสิทธิภาพ อย่างไรก็ตามหากมีเวอร์ชันที่ไม่มี Java ขอแสดงความยินดี (อย่างน้อยก็เป็นทางเลือกที่ดีสำหรับ Spotify)

        OWnCloud มีไว้สำหรับสตรีมมิ่งหรือไม่! ดูเหมือนว่า 4shared แล้ว

  4.   Rolo dijo

    ฉันใช้ minidlna มันไม่สิ้นเปลืองอะไรเลยและคุณสามารถเข้าถึงวิดีโอภาพถ่ายและเพลงได้และฉันจับมันจากเครื่องเล่นวิดีโอบนพีซีหรือบนทีวีมันยังให้ความเป็นไปได้ในการวางหน้าเว็บที่ จำกัด มาก

    อีกอย่าง Madsonic นั่นคือบริการสตรีมมิ่งหรือสตรีมเมอร์? «… Madsonic เป็นสื่อสตรีมบนเว็บและตู้เพลงของ Subsonic …. , Madsonic รองรับการแปลงและการสตรีมในรูปแบบเสียงแทบทุกรูปแบบ, ... »ฉันไม่รู้ว่าความแตกต่างระหว่างคำศัพท์หนึ่งกับคำอื่นมีความแตกต่างกันมากแค่ไหน

    1.    เอโรแลนด์ dijo

      ฉันไม่แน่ใจว่าความแตกต่างคืออะไรสำหรับฉันแล้วดูเหมือนว่าสตรีมเมอร์จะใช้เพื่อบอกว่าซอฟต์แวร์สามารถสตรีมได้ แต่ฉันพูดซ้ำฉันไม่แน่ใจว่า xD

  5.   op dijo

    ปัจจุบันฉันใช้ Ampache จาก Subsonic อย่างที่ฉันเห็นว่ามันเป็นซอฟต์แวร์ฟรีที่มีใบอนุญาต GPL3 แต่ถ้าคุณต้องการมีคุณสมบัติทั้งหมดคุณต้องจ่ายรหัสใบอนุญาตสำหรับเซิร์ฟเวอร์ที่ติดตั้งด้วยเสียงเปรี้ยงปร้างส่วน madsonic ฉันไม่ทราบมันจะเป็นเรื่องของการทดสอบคุณสามารถบอกฉันได้ ฉันจะมีข้อดีอะไรบ้างถ้าฉันใช้ madsonic แทน ampache

    1.    เอโรแลนด์ dijo

      สวัสดี madsonic เป็นส้อมของเปรี้ยงปร้างเฉพาะใน madsonic ไม่จำเป็นต้องจ่ายเงินเพื่อซื้อกุญแจ เกี่ยวกับ Ampache ฉันไม่ได้ใช้มัน - และฉันไม่สามารถบอกคุณได้ว่าข้อดีของ madsonic เกี่ยวกับ ampache คืออะไรใน Google ฉันพบลิงค์นี้บางทีมันอาจช่วยได้: http://www.brunobense.com/2013/04/subsonic_ftw/.