Нуждаюсь в помощи выясняя этот сценарий для записи в гибкий диск в Ubuntu 14.04

Я пытаюсь запустить программу, описанную здесь на Ubuntu 14.04.
Я плохо знаком с Linux и был бы очень признателен за справку в понимании этой программы к гибким дискам чтения-записи для моего Ensoniq EPS16 + выборка клавиатуры.

в описании epsread говорится:

epsread

Сценарий оболочки, который использует fdrawcmd считать диск EPS дорожка за один раз. Это выкладывает данные к stdout, так перенаправьте его в файл. Предупреждение: Это не проверяет, что диск отформатирован правильно, и это читает только из /dev/fd0.

Если Вы даете ему параметр записи, это вместо этого пишет диск EPS. Перенаправьте файл от stdin. Диск должен уже быть отформатирован правильно - он не проверяет это. И снова, это также только пишет в /dev/fd0.

#! /bin/sh
#
# File copyright Wade Bowmer, but you're free to use it as you like.
# 
# Be sure to have a look at http://yceran.org/eps/
# 

# Parameter checking CMD=read if [ "`basename $0`" == "epswrite" ] ; then CMD=write ; fi if [ "$1" == "read" ] ; then CMD=read ; fi if [
"$1" == "write" ] ; then CMD=write ; fi

# Do the actual work CYL=0 while [ $CYL -lt 80 ] ; do

    fdrawcmd $CMD 0 $CYL 0 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL

    # Second side   fdrawcmd $CMD 4 $CYL 1 0 2 10 0x1b 0xff length=5120
rate=2 track=$CYL

    CYL=$(( $CYL + 1 ))

done

Я получил последнюю версию fdutils установленный очень хорошо. Я просто скопировал и вставил epsread сценарий оболочки в терминал. Затем это работало, и я понял, что понятия не имею, что я делаю.

Если кто-то мог бы обойти меня через то, что эта программа пытается сделать, я думаю, что это помогло бы мне сформировать следующие, более подробные вопросы, я должен попросить ступать к получению записи файлов, которые я имею к гибкому диску в Ensoniq EPS16 + формат.

Если мы можем выяснить, как заставить эту программу работать, она поможет большому количеству людей, которые находятся на Linux с несколькими различными клавиатурами Ensoniq, поскольку они совместимы друг с другом.

1
задан 14 November 2017 в 12:35

2 ответа

Вы исказили сценарий оболочки. Это должно быть:

#! /bin/sh
#
# File copyright Wade Bowmer, but you're free to use it as you like.
# 
# Be sure to have a look at http://yceran.org/eps/
# 

# Parameter checking 
CMD=read 
if [ "`basename $0`" == "epswrite" ] ; then CMD=write ; fi 
if [ "$1" == "read" ] ; then CMD=read ; fi 
if [ "$1" == "write" ] ; then CMD=write ; fi

# Do the actual work 
CYL=0 
while [ $CYL -lt 80 ] ; do

    fdrawcmd $CMD 0 $CYL 0 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL

    # Second side   
    fdrawcmd $CMD 4 $CYL 1 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL

    CYL=$(( $CYL + 1 ))

done

Вот то, как это работает:

Во-первых, это устанавливает CMD локальная переменная к"read".
Затем если сценарий basename "epswrite" это устанавливает CMD к"write". Если 1-й параметр к сценарию"read", CMD установлен на"read". Если 1-й параметр к сценарию"write", CMD установлен на"write".

Локальная переменная CYL установлен на 0.

CMD и CYL переменные будут использоваться в генерации фактической команды для выполнения.

Цикл начинается! Пока условие $CYL -lt 80 (Значение CYL меньше, чем 80) верно, код оболочки между do и соответствие done будет повторен.

В цикле существует 3 команды. В первых двух, интерполяции значений для CMD и CYL создайте команды acutal, используемые для выполнения fdrawcmd (См. man fdrawcmd). В первый раз через цикл, команды будут:

fdrawcmd read 0 0 0 0 2 10 0x1b 0xff length=5120 rate=2 track=0 
fdrawcmd read 4 0 1 0 2 10 0x1b 0xff length=5120 rate=2 track=0
#....CMD.^^^^   ^ CYL                                         ^ CYL

Третья команда в цикле,

CYL=$(( $CYL + 1 ))

инкременты CYL 1. Через некоторое время, $CYL -lt 80 не будет верно, и цикл закончится. Выполнение сценария оболочки возобновится после

done

строка.

Узнать что все те параметры к fdrawcmd команда, читала man fdrawcmd или копия онлайн

2
ответ дан 7 December 2019 в 13:30

Так как гибкий патч включен в современные ядра магистрали, можно игнорировать этот сценарий и просто пользователя setfdprm/fdformat/dd

Проверьте это также: http://www.buchty.net/ensoniq/

Примите во внимание, что EPS16 + использует диски DD поэтому, если у Вас есть диски HD, необходимо покрыть дыру.

Короче говоря необходимо сделать:

mknod /dev/fd0eps b 2 120
setfdprm /dev/fd0eps ds dd sect=10 zerobased

затем Вы можете просто чтение-запись диски EPS с dd т.е.:

dd if=/dev/fd0eps of=file.dd

можно также отформатировать их как

fdformat /dev/fd0eps
0
ответ дан 7 December 2019 в 13:30

Другие вопросы по тегам:

Похожие вопросы: